Класс перечисления 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.
- С:
- 9
- См. также:
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в классе 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()
- Возвращает:
- массив, содержащий константы этого класса перечисления в порядке их объявления
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.
https://download.java.net/java/early_access/jdk24/docs/api/jdk.jshell/jdk/jshell/Snippet.Status.html