モジュール 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を使用して別のスニペットを作成すると、このスニペット(それらの依存関係を無効にします)、またはoverwriteのスニペットが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の場合、スニペットは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の場合、スニペットはdefinedです。

      • DROPPED

        public static final Snippet.Status DROPPED
        スニペットは、JShell.drop(Snippet)への明示的な呼び出しのために非アクティブです。

        スニペットは他のスニペット(isDefined() == false)には表示されないため、参照または実行することはできません。

        そのスニペットは、依存者が(isActive() == false)を変更すると更新されません。そのStatusは決して再び変更されません。

      • OVERWRITTEN

        public static final Snippet.Status OVERWRITTEN
        スニペットは新しいスニペットに置き換えられているため、非アクティブです。 これは、JShell.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)が呼び出されたときにpersistentスニペットが再評価されるかどうかを示します。 これはRECOVERABLE_NOT_DEFINEDであるスニペットが更新されるため、isDefined()よりも広いです。
        戻り値:
        スニペットがアクティブな場合はtrue;そうでなければfalse
      • isDefined

        public boolean isDefined​()
        スニペットが現在JShellの定義済み状態の一部であるかどうかを示します。 他のスニペットのコンパイルには見えますか?
        戻り値:
        スニペットが定義されている場合はtrue;そうでなければfalse