モジュール jdk.jshell
パッケージ 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が変更される場合)があります。 実行可能スニペットは、VALID Statusにある場合にのみ実行できます。

    関連項目:
    JShell.status(jdk.jshell.Snippet)
    • 列挙型定数のサマリー

      列挙型定数 
      列挙型定数 説明
      DROPPED
      JShell.drop(Snippet)への明示的なコールのため、スニペットは非アクティブです。
      NONEXISTENT
      スニペットは、まだ存在しないため非アクティブです。
      OVERWRITTEN
      スニペットは、新しいスニペットに置き換えられたため非アクティブです。
      RECOVERABLE_DEFINED
      スニペットは、リカバリ可能な未解決の参照または本体内のその他の問題(現在のJShell状態のコンテキスト)を含む宣言スニペットです。
      RECOVERABLE_NOT_DEFINED
      スニペットは、リカバリ可能な未解決の参照またはその他の問題(現在のJShell状態のコンテキスト)を含む宣言スニペットです。
      REJECTED
      スニペットは、最初の評価でコンパイルに失敗し、JShell状態をさらに変更して有効になることができないため、非アクティブです。
      VALID
      スニペットは有効なスニペットです(現在のJShell状態のコンテキスト)。
    • 列挙型定数の詳細

      • VALID

        public static final Snippet.Status VALID
        スニペットは有効なスニペットです(現在のJShell状態のコンテキスト)。 VALID Statusのスニペットのみを実行できます(ただし、すべてのVALIDスニペットに実行可能コードがあるわけではありません)。

        スニペットが定義されます(isDefined() == true)。 スニペットが宣言またはインポート(Snippet.Kind.isPersistent())の場合、他のスニペットから参照できます。

        スニペットは、依存要素の変更(isActive() == true)に応じて更新され、そのステータスはRECOVERABLE_DEFINEDRECOVERABLE_NOT_DEFINEDDROPPEDまたはOVERWRITTENになります。

      • RECOVERABLE_DEFINED

        public static final Snippet.Status RECOVERABLE_DEFINED
        スニペットは、リカバリ可能な未解決の参照または本体内のその他の問題(現在のJShell状態のコンテキスト)を含む宣言スニペットです。 このStatusを持つことができるのは、DeclarationSnippetのみです。

        スニペットには有効な署名があり、他のスニペット(isDefined() == true)から参照できるため、既存または新規のスニペットで参照できますが、スニペットは実行できません。 UnresolvedReferenceExceptionは、実行の試行時にスローされます。

        スニペットは、依存要素の変更(isActive() == true)に応じて更新され、そのステータスはVALIDRECOVERABLE_NOT_DEFINEDDROPPEDまたはOVERWRITTENになります。

        ノート: RECOVERABLE_DEFINEDRECOVERABLE_NOT_DEFINEDはどちらもリカバリ可能な可能性があるエラーを示しており、RECOVERABLE_DEFINEDではスニペットが定義されているという点で異なります。

      • RECOVERABLE_NOT_DEFINED

        public static final Snippet.Status RECOVERABLE_NOT_DEFINED
        スニペットは、リカバリ可能な未解決の参照またはその他の問題(現在のJShell状態のコンテキスト)を含む宣言スニペットです。 このStatusを持つことができるのは、DeclarationSnippetのみです。

        スニペットに無効な署名があるか、または実装で定義できません。 このスニペットは他のスニペット(isDefined() == false)からは見えないため、参照または実行できません。

        スニペットは、依存要素の変更(isActive() == true)に応じて更新され、そのステータスはVALIDRECOVERABLE_DEFINEDDROPPEDまたはOVERWRITTENになります。

        ノート: RECOVERABLE_DEFINEDRECOVERABLE_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は二度と変更されません。

    • メソッドの詳細

      • 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