Module  java.compiler
软件包  javax.lang.model.util

Class ElementScanner6<R,P>

  • 参数类型
    R - 这个访问者的方法的返回类型。 对不需要返回结果的访问者使用Void
    P - 此访问者方法的附加参数类型。 对不需要其他参数的访问者使用Void
    All Implemented Interfaces:
    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"开头的实例方法。

    当添加这种新的访问方法时,此类中的默认实现将是调用visitUnknown方法。 还将引入新的元素扫描器访问者类来对应于新的语言级别; 该访问者对于访问方法将具有不同的默认行为。 当新访客被介绍时,全部或部分访问者可能会被弃用。

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

      • DEFAULT_VALUE

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

      • ElementScanner6

        @Deprecated
        protected ElementScanner6​()
        已过时。 第6版已经过时了 更新到访问者较新的版本级别。
        具体子类的构造方法 使用null作为默认值。
      • ElementScanner6

        @Deprecated
        protected ElementScanner6​(R defaultValue)
        已过时。 第6版已经过时了 更新到访问者较新的版本级别。
        具体子类的构造方法 使用参数作为默认值。
        参数
        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 - 访客指定的参数
        结果
        扫描的结果