Spec-Zone.ru › OpenJDK 17

Класс перечисления Snippet.Status

java.lang.Object
java.lang.Enum<Snippet.Status>
jdk.jshell.Snippet.Status
Все реализуемые интерфейсы:
Serializable, Comparable<Snippet.Status>, Constable
Вложенный класс:
Snippet
public static enum Snippet.Status extends Enum<Snippet.Status>
Описывает текущее состояние фрагмента кода. Это динамическое свойство фрагмента кода в состоянии JShell — поэтому его извлекают с помощью запроса к JShell.

Состояние Status изменяется по мере изменения состояния. Например, создание другого фрагмента кода с eval может разрешить зависимости этого фрагмента кода (или аннулировать эти зависимости), или заменить этот фрагмент кода, изменяя его Status.

Важные свойства, связанные с Status это: isDefined(), если он виден другим существующим и новым фрагментам кода; и isActive(), если, по мере изменения состояния JShell, фрагмент кода будет обновляться, возможно, изменяя Status. Выполняемый фрагмент кода может быть выполнен только если он находится в состоянии VALID Status.

См. также:
  • JShell.status(jdk.jshell.Snippet)

Краткое описание вложенных классов

Вложенные классы/интерфейсы, объявленные в классе 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(String name)
Возвращает константу перечисления этого класса с заданным именем.
static Snippet.Status[] values()
Возвращает массив, содержащий константы этого класса перечисления, в порядке их объявления.

Методы, объявленные в классе java.lang.Enum

clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf

Методы, объявленные в классе java.lang.Object

getClass, notify, notifyAll, wait, wait, 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 состояния). Только 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
Фрагмент неактивен, так как он не прошёл компиляцию при первоначальной оценке и не может стать допустимым при дальнейших изменениях состояния JShell.

Фрагмент не виден другим фрагментам (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()
Указывает, является ли фрагмент в настоящее время частью определённого состояния JShell. Виден ли он для компиляции других фрагментов?
Возвращает:
true , если фрагмент определён; в противном случае false

© 1993, 2021, 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/17/docs/api/jdk.jshell/jdk/jshell/Snippet.Status.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API