模块  java.compiler
软件包  javax.lang.model.util

Class 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方法在这个类通过调用扫描其成分元素scan他们enclosed elementsparameters ,等等,如在单独的方法规范表示。 子类可以通过覆盖visitXyz方法来控制访问的订单元素。 请注意,扫描程序的客户端可能会在感兴趣的根对象上调用v.scan(e, p)而不是v.visit(e, p)

    当子类重写visitXyz方法时,新方法可以通过调用super.visitXyz以默认方式扫描封闭元素。 以这种方式,具体访问者可以控制关于附加处理的组件元素遍历的顺序; 例如,在重写方法的开头一直调用super.visitXyz将产生一个前序遍历等。如果组件元素应该以其他顺序遍历,而不是调用super.visitXyz ,则覆盖访问方法应该调用scan中的元素。期望的顺序。

    本课程中的方法可以根据其一般合同进行覆盖。 请注意,使用@Override在具体子类中注释方法将有助于确保按预期覆盖方法。

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

    添加这样的新访问方法时,此类中的默认实现将是调用visitUnknown方法。 还将引入一个新的元素扫描器访问者类,以对应新的语言级别; 此访问者将针对相关的访问方法使用不同的默认行为。 引入新访问者时,可能会弃用此访问者的全部或部分内容。

    从以下版本开始:
    1.6
    另请参见:
    ElementScanner7ElementScanner8ElementScanner9
    • 字段详细信息

      • DEFAULT_VALUE

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

      • ElementScanner6

        @Deprecated(since="9")
        protected ElementScanner6()
        Deprecated.
        Release 6 is obsolete; update to a visitor for a newer release level.
        具体子类的构造函数; 使用null作为默认值。
      • ElementScanner6

        @Deprecated(since="9")
        protected ElementScanner6​(R defaultValue)
        Deprecated.
        Release 6 is obsolete; update to a visitor for a newer release level.
        具体子类的构造函数; 使用参数作为默认值。
        参数
        defaultValue - 默认值
    • 方法详细信息

      • scan

        public final R scan​(Iterable<? extends Element> iterable,
                            P p)
        迭代给定的元素并在每个元素上调用scan(Element, P) 返回上次调用scanDEFAULT_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)
        访问类型元素。
        实现要求:
        此实现扫描封闭的元素。
        参数
        e - 要访问的元素
        p - 访问者指定的参数
        结果
        扫描的结果
      • visitVariable

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

        public R visitExecutable​(ExecutableElement e,
                                 P p)
        访问可执行元素。
        实现要求:
        此实现扫描参数。
        参数
        e - 要访问的元素
        p - 访问者指定的参数
        结果
        扫描的结果
      • visitTypeParameter

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