- java.lang.Object
-
- java.lang.Enum<Snippet.Status>
-
- jdk.jshell.Snippet.Status
-
- すべての実装されたインタフェース:
Serializable,Comparable<Snippet.Status>
- 含まれているクラス:
- Snippet
public static enum Snippet.Status extends Enum<Snippet.Status>
スニペットの現在の状態を示します。 これは、JShell状態内のスニペットの動的プロパティであるため、{@code JShell}の問合せを使用して取得されます。状態が変化すると、
Statusが変わります。 たとえば、evalを使用して別のスニペットを作成すると、このスニペットの依存性を解決(またはそれらの依存性を無効化)したり、このスニペットでStatusを変更上書きしたりできます。Statusに関連付けられた重要なプロパティには、isDefined()(既存のスニペットと新しいスニペットから参照可能である場合)、isActive()(JShell状態の変更に伴ってスニペットが更新され、場合によってはStatusが変更される場合)があります。 実行可能スニペットは、VALIDStatusにある場合にのみ実行できます。
-
-
列挙型定数のサマリー
列挙型定数 列挙型定数 説明 DROPPEDJShell.drop(Snippet)への明示的なコールのため、スニペットは非アクティブです。NONEXISTENTスニペットは、まだ存在しないため非アクティブです。OVERWRITTENスニペットは、新しいスニペットに置き換えられたため非アクティブです。RECOVERABLE_DEFINEDスニペットは、リカバリ可能な未解決の参照または本体内のその他の問題(現在のJShell状態のコンテキスト)を含む宣言スニペットです。RECOVERABLE_NOT_DEFINEDスニペットは、リカバリ可能な未解決の参照またはその他の問題(現在のJShell状態のコンテキスト)を含む宣言スニペットです。REJECTEDスニペットは、最初の評価でコンパイルに失敗し、JShell状態をさらに変更して有効になることができないため、非アクティブです。VALIDスニペットは有効なスニペットです(現在のJShell状態のコンテキスト)。
-
メソッドのサマリー
すべてのメソッド 静的メソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 booleanisActive()スニペットがアクティブであるかどうか、つまり、ステータスを変更できる新しいJShell.eval(String)またはJShell.drop(Snippet)が呼び出されたときに、永続スニペットが再評価されるかどうかを示します。booleanisDefined()スニペットが現在JShellの定義済状態の一部であるかどうかを示します。static Snippet.StatusvalueOf(String name)指定された名前を持つ、この型の列挙型定数を返します。static Snippet.Status[]values()この列挙型の定数を含む配列を、宣言されている順序で返します。
-
-
-
列挙型定数の詳細
-
VALID
public static final Snippet.Status VALID
スニペットは有効なスニペットです(現在のJShell状態のコンテキスト)。VALIDStatusのスニペットのみを実行できます(ただし、すべての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
スニペットは、最初の評価でコンパイルに失敗し、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)が呼び出されたときに、永続スニペットが再評価されるかどうかを示します。RECOVERABLE_NOT_DEFINEDのスニペットが更新されるため、これはisDefined()よりも広い範囲です。- 戻り値:
- スニペットがアクティブな場合は
true、それ以外の場合はfalse
-
isDefined
public boolean isDefined()
スニペットが現在JShellの定義済状態の一部であるかどうかを示します。 他のスニペットのコンパイルで確認できますか。- 戻り値:
- スニペットが定義されている場合は
true、それ以外の場合はfalse
-
-