模块 java.compiler

类 ElementScanner6<R,P>

java.lang.Object
javax.lang.model.util.AbstractElementVisitor6 <R,P>
javax.lang.model.util.ElementScanner6<R,P>
类型参数:
R - 此访问者方法的返回类型。对不需要返回结果的访问者使用Void
P - 此访问者方法的附加参数的类型。 Void 用于不需要额外参数的访问者。
所有已实现的接口:
ElementVisitor<R,P>
已知子类:
ElementScanner7

@SupportedSourceVersion (RELEASE_6 ) public class ElementScanner6<R,P> extends AbstractElementVisitor6 <R,P>
具有适用于 RELEASE_6 源版本的默认行为的程序元素扫描访问者。此类中的 visitXyz 方法通过在它们的 封闭元素parameters 等上调用 scan 来扫描它们的组件元素,如各个方法规范中所示。子类可以通过覆盖 visitXyz 方法来控制访问元素的顺序。请注意,扫描程序的客户端可能会通过在感兴趣的根对象上调用 v.scan(e, p) 而不是 v.visit(e, p) 来获得所需的行为。

当子类覆盖 visitXyz 方法时,新方法可以通过调用 super.visitXyz 以默认方式扫描包含的元素。以这种方式,具体访问者可以控制遍历与附加处理相关的组件元素的顺序;例如,在覆盖方法的开头始终调用 super.visitXyz 将产生前序遍历等。如果应该以其他顺序遍历组件元素,而不是调用 super.visitXyz ,覆盖访问方法应该调用 scan 中的元素想要的顺序。

API 注意:
此类中的方法可能会根据其一般约定被重写。

WARNING: 此类实现的 ElementVisitor 接口将来可能会添加一些方法,以适应新的、目前未知的、添加到 Java 编程语言的未来版本中的语言结构。因此,以后可能会在这个类中加入名称以"visit"开头的方法;为避免不兼容,扩展此类的类不应声明名称以 "visit" 开头的任何实例方法。

当添加这样一个新的访问方法时,该类中的默认实现将是直接或间接调用visitUnknown 方法。还将引入一个新的元素扫描器访问者类,以对应新的语言级别;对于所讨论的访问方法,此访问者将具有不同的默认行为。引入新访问者时,可能会弃用此访问者类的部分内容,包括其构造函数。

自从:
1.6
参见:
  • 字段详细信息

    • DEFAULT_VALUE

      protected final R  DEFAULT_VALUE
      指定的默认值。
  • 构造方法详细信息

    • ElementScanner6

      @Deprecated (since ="9") protected ElementScanner6()
      已弃用。
      第 6 版已过时;更新为访问者更新的版本级别。
      具体子类的构造函数;使用 null 作为默认值。
    • ElementScanner6

      @Deprecated (since ="9") protected ElementScanner6(R  defaultValue)
      已弃用。
      第 6 版已过时;更新为访问者更新的版本级别。
      具体子类的构造方法;使用参数作为默认值。
      参数:
      defaultValue - 默认值
  • 方法详情

    • scan

      public final R  scan(Iterable <? extends Element > iterable, P  p)
      遍历给定的元素并在每个元素上调用 scan(Element, P) 。返回上次调用 scan DEFAULT_VALUE 的空可迭代结果。
      参数:
      iterable - 要扫描的元素
      p - 附加参数
      返回:
      最后一个元素的扫描或 DEFAULT_VALUE 如果没有元素
    • scan

      public R  scan(Element  e, P  p)
      通过调用 e.accept(this, p) 处理一个元素;这个方法可以被子类覆盖。
      参数:
      e - 要扫描的元素
      p - 扫描仪指定的参数
      返回:
      访问 e 的结果。
    • scan

      public final R  scan(Element  e)
      相当于 v.scan(e, null) 的便捷方法。
      参数:
      e - 要扫描的元素
      返回:
      扫描 e 的结果。
    • visitPackage

      public R  visitPackage(PackageElement  e, P  p)
      访问包元素。
      实现要求:
      此实现扫描封闭的元素。
      参数:
      e - 要访问的元素
      p - 访问者指定的参数
      返回:
      扫描结果
    • visitType

      public R  visitType(TypeElement  e, P  p)
      访问类型元素。
      实现要求:
      此实现扫描封闭的元素。请注意,此实现对类型参数进行了 not 扫描,因为类型参数不被视为 类型的封闭元素
      参数:
      e - 要访问的元素
      p - 访问者指定的参数
      返回:
      扫描结果
    • visitVariable

      public R  visitVariable(VariableElement  e, P  p)
      访问可变元素。
      实现要求:
      此实现扫描封闭的元素,除非元素是 RESOURCE_VARIABLE,在这种情况下调用 visitUnknown
      参数:
      e - 要访问的元素
      p - 访问者指定的参数
      返回:
      扫描结果
    • visitExecutable

      public R  visitExecutable(ExecutableElement  e, P  p)
      访问可执行元素。
      实现要求:
      此实现扫描参数。请注意,此实现not 扫描了类型参数。
      参数:
      e - 要访问的元素
      p - 访问者指定的参数
      返回:
      扫描结果
    • visitTypeParameter

      public R  visitTypeParameter(TypeParameterElement  e, P  p)
      访问类型参数元素。
      实现要求:
      此实现扫描封闭的元素。
      参数:
      e - 要访问的元素
      p - 访问者指定的参数
      返回:
      扫描结果