Перечисление Snippet.Status
- Все реализованные интерфейсы:
-
Serializable,Comparable<Snippet.Status>,Constable
- Вложенный класс:
Snippet
public static enum Snippet.Status extends Enum<Snippet.Status>
JShell. Состояние Status изменяется при изменении состояния. Например, создание другого фрагмента с помощью eval может разрешить зависимости этого фрагмента (или сделать эти зависимости недействительными), или перезаписать этот фрагмент, изменив его Status.
Важные свойства, связанные с Status это: isDefined(), если он виден другим существующим и новым фрагментам; и isActive(), если, при изменении состояния JShell, фрагмент будет обновлен, возможно, изменив Status. Выполняемый фрагмент может быть выполнен только если он находится в состоянии VALID Status.
- См. также:
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в классе java.lang.Enum
Enum.EnumDesc<E extends Enum<E>>
Краткое описание констант перечисления
| Константа перечисления | Описание |
|---|---|
DROPPED |
Фрагмент неактивен из-за явного вызова JShell.drop(Snippet). |
NONEXISTENT |
Фрагмент неактивен, потому что он еще не существует. |
OVERWRITTEN |
Фрагмент неактивен, потому что он был заменён новым фрагментом. |
RECOVERABLE_DEFINED |
Фрагмент — это фрагмент объявления с потенциально восстанавливаемыми неразрешенными ссылками или другими проблемами в его теле (в контексте текущего состояния JShell). |
RECOVERABLE_NOT_DEFINED |
Фрагмент — это фрагмент объявления с потенциально восстанавливаемыми неразрешенными ссылками или другими проблемами (в контексте текущего состояния JShell). |
REJECTED |
Фрагмент неактивен, потому что он не прошёл компиляцию при первоначальной оценке, и он не может стать действительным при дальнейших изменениях состояния JShell. |
VALID |
Фрагмент — это действительный фрагмент (в контексте текущего состояния JShell). |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
isActive() |
Указывает, активен ли фрагмент, то есть, будет ли персистентный фрагмент повторно вычисляться при вызове нового JShell.eval(String) или JShell.drop(Snippet), который может изменить его статус. |
boolean |
isDefined() |
Указывает, является ли фрагмент в данный момент частью определенного состояния JShell. |
static Snippet.Status |
valueOf |
Возвращает константу перечисления этого класса с заданным именем. |
static Snippet.Status[] |
values() |
Возвращает массив, содержащий константы этого класса перечисления в порядке их объявления. |
Подробное описание констант перечисления
VALID
public static final Snippet.Status VALID
JShell состояния). Только фрагменты с VALID Status могут быть выполнены (хотя не все VALID фрагменты содержат исполняемый код). Фрагмент определён (isDefined() == true). Если фрагмент представляет собой объявление или импорт (Snippet.Kind.isPersistent()), он виден другим фрагментам
Фрагмент будет обновляться при изменении зависимостей (isActive() == true), его статус может стать RECOVERABLE_DEFINED, RECOVERABLE_NOT_DEFINED, DROPPED, или OVERWRITTEN.
RECOVERABLE_DEFINED
public static final Snippet.Status RECOVERABLE_DEFINED
JShell состояния). Только DeclarationSnippet может иметь этот Status. Фрагмент имеет корректную сигнатуру и виден другим фрагментам (isDefined() == true), поэтому может ссылаться на существующие или новые фрагменты, но фрагмент не может быть выполнен. При попытке выполнить его будет брошено исключение UnresolvedReferenceException.
Фрагмент будет обновляться при изменении зависимостей (isActive() == true), его статус может стать VALID, RECOVERABLE_NOT_DEFINED, DROPPED, или OVERWRITTEN.
Примечание: как RECOVERABLE_DEFINED так и RECOVERABLE_NOT_DEFINED указывают на потенциально восстанавливаемые ошибки, они отличаются тем, что для RECOVERABLE_DEFINED, фрагмент определен.
RECOVERABLE_NOT_DEFINED
public static final Snippet.Status RECOVERABLE_NOT_DEFINED
JShell состояния). Только DeclarationSnippet может иметь этот Status. Фрагмент имеет некорректную сигнатуру или реализация иначе не может его определить. Фрагмент не виден другим фрагментам (isDefined() == false), и поэтому не может быть использован в ссылках или выполнен.
Фрагмент будет обновляться при изменении зависимостей (isActive() == true), его статус может стать VALID, RECOVERABLE_DEFINED, DROPPED, или OVERWRITTEN.
Примечание: как RECOVERABLE_DEFINED так и RECOVERABLE_NOT_DEFINED указывают на потенциально восстанавливаемые ошибки, они отличаются тем, что для RECOVERABLE_DEFINED, фрагмент определён.
DROPPED
public static final Snippet.Status DROPPED
JShell.drop(Snippet). Фрагмент не виден другим фрагментам (isDefined() == false), и поэтому не может быть использован в ссылках или выполнен.
Фрагмент не будет обновляться при изменении зависимостей (isActive() == false), его Status больше не изменится.
OVERWRITTEN
public static final Snippet.Status OVERWRITTEN
eval, соответствует предыдущему фрагменту. Один TypeDeclSnippet совпадёт с другим TypeDeclSnippet если имена совпадут. Например, class X { } заменит class X { int ii; } или interface X { }. Один MethodSnippet совпадёт с другим MethodSnippet если имена и типы параметров совпадут. Например, void m(int a) { } заменит int m(int a) { return a+a; }. Один VarSnippet совпадёт с другим VarSnippet если имена совпадут. Например, double z; заменит long z = 2L;. Только PersistentSnippet может иметь этот Status. Фрагмент не виден другим фрагментам (isDefined() == false), и поэтому не может быть использован в ссылках или выполнен.
Фрагмент не будет обновляться при изменении зависимостей (isActive() == false), его Status больше не изменится.
REJECTED
public static final Snippet.Status REJECTED
Фрагмент не виден другим фрагментам (isDefined() == false), и поэтому не может быть использован в ссылках или выполнен.
Фрагмент не будет обновляться при изменении зависимостей (isActive() == false), его Status больше не изменится.
NONEXISTENT
public static final Snippet.Status NONEXISTENT
SnippetEvent.previousStatus для новых фрагментов. JShell.status(Snippet) никогда не вернёт этот Status. Бессмысленно, что isDefined() и isActive() оба определены false.
Подробное описание методов
values
public static Snippet.Status[] values()
- Returns:
- массив, содержащий константы этого класса перечисления в порядке их объявления
valueOf
public static Snippet.Status valueOf(String name)
- Parameters:
-
name- имя возвращаемой константы перечисления. - Returns:
- константа перечисления с указанным именем
- Throws:
-
IllegalArgumentException- если в этом классе перечисления нет константы с указанным именем -
NullPointerException- если аргумент равен null
isActive
public boolean isActive()
JShell.eval(String) или JShell.drop(Snippet), которые могут изменить его состояние. Это более широкое понятие, чем isDefined(), так как фрагмент, который RECOVERABLE_NOT_DEFINED будет обновлён.- Returns:
-
trueесли фрагмент активен; в противном случаеfalse
isDefined
public boolean isDefined()
- Returns:
-
trueесли фрагмент определён; в противном случаеfalse
© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/jdk.jshell/jdk/jshell/Snippet.Status.html