Перечисление 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. Выполняемый фрагмент кода можно выполнить, только если он находится в состоянии Status VALID.
- Начиная с:
- 9
- См. также:
Краткое описание вложенных классов
Вложенные классы и интерфейсы, объявленные в классе Enum
Enum.EnumDesc<E> | Модификатор и тип | Класс | Описание |
|---|---|---|
static final class |
Enum.EnumDesc<E extends Enum<E>> |
Номинальный дескриптор константы enum. |
Краткое описание констант перечисления
| Константа перечисления | Описание |
|---|---|
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() |
Возвращает массив, содержащий константы этого класса-перечисления в порядке их объявления. |
Методы, объявленные в классе Enum
clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf | Модификатор и тип | Метод | Описание |
|---|---|---|
protected final Object |
clone() |
Выбрасывает CloneNotSupportedException. |
final int |
compareTo |
Сравнивает это перечисление с указанным объектом, определяя порядок. |
final Optional |
describeConstable() |
Возвращает дескриптор перечисления EnumDesc для этого экземпляра, если его можно создать, или пустой Optional, если создать его нельзя. |
final boolean |
equals |
Возвращает true, если указанный объект равен этой константе перечисления. |
protected final void |
finalize() |
Устарело, планируется удаление: этот элемент API может быть удалён в будущей версии. Финализация объявлена устаревшей и планируется к удалению. |
final Class |
getDeclaringClass() |
Возвращает объект Class, соответствующий типу перечисления этой константы перечисления. |
final int |
hashCode() |
Возвращает хеш-код этой константы перечисления. |
final String |
name() |
Возвращает имя этой константы перечисления в точности так, как оно указано в объявлении перечисления. |
final int |
ordinal() |
Возвращает порядковый номер этой константы перечисления (её позицию в объявлении перечисления, где первой константе присваивается порядковый номер ноль). |
String |
toString() |
Возвращает имя этой константы перечисления, указанное в объявлении. |
static <T extends Enum<T>> |
valueOf |
Возвращает константу указанного класса-перечисления с указанным именем. |
Методы, объявленные в классе Object
getClass, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания. |
final void |
wait |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Подробное описание констант перечисления
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). Такое Status может иметь только DeclarationSnippet. Фрагмент кода имеет допустимую сигнатуру и виден другим фрагментам кода (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). Такое Status может иметь только DeclarationSnippet. Сигнатура фрагмента кода недействительна или реализация по другой причине не может его определить. Фрагмент кода не виден другим фрагментам кода (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;. Такое Status может иметь только PersistentSnippet. Фрагмент кода не виден другим фрагментам кода (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()
- Возвращает:
- массив, содержащий константы этого класса-перечисления в порядке их объявления
valueOf
public static Snippet.Status valueOf(String name)
- Параметры:
-
name— имя возвращаемой константы перечисления. - Возвращает:
- константу перечисления с указанным именем
- Выбрасывает:
-
IllegalArgumentException— если в этом классе-перечислении нет константы с указанным именем -
NullPointerException— если аргумент равен null
isActive
public boolean isActive()
JShell.eval(String) или JShell.drop(Snippet), способного изменить его состояние. Это понятие шире, чем isDefined(), поскольку фрагмент кода в состоянии RECOVERABLE_NOT_DEFINED будет обновлён.- Возвращает:
-
true, если фрагмент кода активен; в противном случае —false
isDefined
public boolean isDefined()
- Возвращает:
-
true, если фрагмент кода определён; в противном случае —false
© 1993, 2025, 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.