模块  jdk.jshell
软件包  jdk.jshell

Enum Snippet.Status

    • Enum Constant Detail

      • 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状态的上下文中)。 只有DeclarationSnippet可以拥有Status

        该代码段具有有效签名,并且对其他代码段( 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状态的上下文中)。 只有DeclarationSnippet可以拥有Status

        该代码段具有无效签名,否则实现无法定义它。 该片段对其他片段( isDefined() == false )不可见,因此无法引用或执行。

        该片段将更新为家属变化( isActive() == true ),其地位可能成为VALIDRECOVERABLE_DEFINEDDROPPED ,或OVERWRITTEN

        注意: RECOVERABLE_DEFINEDRECOVERABLE_NOT_DEFINED表示潜在的可恢复错误,它们的不同之处在于,对于RECOVERABLE_DEFINED ,该片段为defined

      • 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将永远不会再次更改。

    • 方法详细信息

      • 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
      • isDefined

        public boolean isDefined()
        指示代码段当前是否是JShell的已定义状态的一部分。 编译其他片段是否可见?
        结果
        true如果定义了Snippet; 否则false