Module jdk.jshell
Package jdk.jshell

Class SnippetEvent

java.lang.Object
jdk.jshell.SnippetEvent

public class SnippetEvent extends Object
一个对片段进行更改的描述。这些更改是通过使用 JShell.eval(String) 直接更改状态生成的,或者通过这些相同的方法间接更改,因为依赖关系发生变化或片段被覆盖。对于直接更改,causeSnippet()null

SnippetEvent 是不可变的:对其任何方法的访问将始终返回相同的结果。因此是线程安全的。

自版本:
9
  • Method Details

    • snippet

      public Snippet snippet()
      已更改的片段。
      返回:
      返回已更改其 Status 的片段。
    • previousStatus

      public Snippet.Status previousStatus()
      过渡前的状态。如果此事件描述了片段的创建,则返回 NONEXISTENT
      返回:
      先前的状态
    • status

      public Snippet.Status status()
      过渡后的状态。注意:这可能与先前的状态相同(并非所有更改都会导致 Status 更改)。
      返回:
      状态
    • isSignatureChange

      public boolean isSignatureChange()
      指示签名是否已更改。进入或退出 定义 始终是签名更改。被覆盖的片段 (status == OVERWRITTEN) 始终为 false,因为定义的责任已传递给覆盖定义。
      返回:
      如果签名已更改,则为 true;否则为 false
    • causeSnippet

      public Snippet causeSnippet()
      导致此更新的更改片段或 null。如果此更改是通过 eval 创建新片段或通过 drop 明确删除片段,则返回 null
      返回:
      导致此更改的片段或 null(如果直接由 API 操作导致)。
    • exception

      public JShellException exception()
      如果遇到未解析的引用,则为 UnresolvedReferenceException 的实例,如果在执行过程中抛出异常,则为 EvalException 的实例,否则为 null
      返回:
      异常或 null
    • value

      public String value()
      成功运行的结果值。如果未执行或抛出异常,则值为 null。
      返回:
      值或 null
    • toString

      public String toString()
      返回事件的字符串表示形式。
      覆盖:
      toString 在类 Object
      返回:
      SnippetEvent 的描述性表示形式