Module jdk.jshell
Package jdk.jshell

Interface SourceCodeAnalysis.SnippetWrapper

封装类:
SourceCodeAnalysis

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

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

  • Method Details

    • source

      String source()
      返回被包装的输入。对于wrappers(String),这是输入中片段的源代码。声明N个变量的变量声明将映射到N个带有分隔源的包装器。

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

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

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

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

      源代码可能被分割并映射到包装源代码的不同位置。

      返回:
      被包装成顶层Java代码的源代码
    • fullClassName

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

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

      int sourceToWrappedPosition(int pos)
      将源代码中的字符位置映射到被包装代码中的字符位置。
      参数:
      pos - source()中的位置
      返回:
      wrapped()中对应的位置
    • wrappedToSourcePosition

      int wrappedToSourcePosition(int pos)
      将被包装代码中的字符位置映射到源代码中的字符位置。
      参数:
      pos - wrapped()中的位置
      返回:
      source()中对应的位置