模块 jdk.jshell

接口 SourceCodeAnalysis.SnippetWrapper

封闭类:
SourceCodeAnalysis

public static interface SourceCodeAnalysis.SnippetWrapper
将一段 Java 源代码包装到有效的顶级 Java 源代码中。包装将始终是导入或在顶层包含合成类。如果生成一个合成类,它将由包和导入声明进行,并且可能包含合成类成员。

除了映射形式之外,该接口还提供上下文和位置映射信息。

  • 方法详情

    • source

      String  source()
      返回包装的输入。对于 wrappers(String) ,这是输入中片段的来源。 N 变量的变量声明将映射到 N 包装器,并将源分开。

      对于 wrapper(Snippet) ,这是 Snippet.source()

      返回:
      包装器对应的输入源。
    • wrapped

      String  wrapped()
      返回包装 source() 的 Java 类定义,如果是导入,则返回导入源。

      如果输入不是有效的代码段,则这将不是有效的类/导入定义。

      源可以被分割并映射到包装源内的不同位置。

      返回:
      源代码封装到顶级 Java 代码中
    • fullClassName

      String  fullClassName()
      返回 wrapped() 类的完全限定类名。对于错误的输入,返回最佳猜测。
      返回:
      合成包装类的名称;如果是导入,则名称未定义
    • kind

      Snippet.Kind  kind()
      返回 source() Snippet.Kind
      返回:
      代表一般片段类型的枚举。
    • sourceToWrappedPosition

      int sourceToWrappedPosition(int pos)
      将源中的字符位置映射到换行中的字符位置。
      参数:
      pos - 在 source() 中的位置
      返回:
      wrapped() 中的对应位置
    • wrappedToSourcePosition

      int wrappedToSourcePosition(int pos)
      将换行中的字符位置映射到源中的字符位置。
      参数:
      pos - 在 wrapped() 中的位置
      返回:
      source() 中的对应位置