Enum Snippet.Status

Все реализованные интерфейсы:
Serializable, Comparable<Snippet.Status>
Окружающий класс:
Snippet
public static enum Snippet.Status
extends Enum<Snippet.Status>

Описывает текущее состояние фрагмента кода. Это динамическое свойство фрагмента кода в состоянии JShell — поэтому его извлекают с помощью запроса к {@code JShell}.

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

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

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

Постоянные значения перечисления

Постоянное значение перечисления Описание
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, 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()

Возвращает массив, содержащий константы этого типа перечисления в порядке их объявления. Этот метод может быть использован для итерации по константам следующим образом:

for (Snippet.Status c : Snippet.Status.values())
    System.out.println(c);

Возвращает:
массив, содержащий константы этого типа перечисления в порядке их объявления

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, 2020, 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/11/docs/api/jdk.jshell/jdk/jshell/Snippet.Status.html

Spec-Zone .ru
спецификации, руководства, описания, API