javax.lang.model.util

接口
java.lang.Object
  继承者 javax.lang.model.util.AbstractElementVisitor6<R,P>
      继承者 javax.lang.model.util.ElementScanner6<R,P>
类型参数:
R - 此 visitor 的方法的返回类型。对于不需要返回结果的 visitor,使用 Void
所有已实现的接口:
ElementVisitor<R,P>

@SupportedSourceVersion(value=RELEASE_6)
public class ElementScanner6<R,P>
     
extends AbstractElementVisitor6<R,P>

程序元素的扫描 visitor,具有适用于 RELEASE_6 源版本的默认行为。此类中的 visitXYZ 方法通过对其 封装元素参数等调用 scan 来扫描其组件元素,正如其各自的方法规范所指示的那样。子类可以通过重写 visitXYZ 方法控制元素的访问顺序。注意,scanner 的客户端可通过对相关根元素调用 v.scan(e, p) 而不是 v.visit(e, p) 来获得所需行为。

当子类重写 visitXYZ 方法时,新方法可以通过调用 super.visitXYZ 按默认方式扫描封装的元素。使用这种方式,就附加处理而言,具体 visitor 可以控制遍历组件元素的顺序;例如,在重写方法的开始处以一致的方式调用 super.visitXYZ 将产生先序遍历 (preorder traversal)。如果应该以其他顺序遍历组件元素,那么重写的 visit 方法应该使用按所需顺序排列的元素调用 scan,而不是调用 super.visitXYZ

根据常规协定,可以重写此类中的方法。注意,具有 @Override 的具体子类中的注释方法可以帮助确定那些打算重写的方法。

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

在添加一个这样的新 visit 方法时,此类中的默认实现将调用 visitUnknown 方法。还将引入新的元素 scanner visitor 类,以对应新的语言级别;此 visitor 针对相关 visit 方法有不同的默认行为。在引入新的 visitor 时,此 visitor 的全部或部分可能过时。

从以下版本开始:
1.6

字段摘要
protected  R DEFAULT_VALUE
          指定的默认值。
 
构造方法摘要
protected ElementScanner6()
          具体子类的构造方法;使用 null 作为默认值。
protected ElementScanner6(R defaultValue)
          具体子类的构造方法;使用参数作为默认值。
 
方法摘要
 R scan(Element e)
          等效于 v.scan(e, null) 的便捷方法。
 R scan(Element e, P p)
          通过调用 e.accept(this, p) 处理元素;此方法可被子类重写。
 R scan(Iterable<? extends Element> iterable, P p)
          迭代给定元素并对每个元素调用 scan(Element, P)
 R visitExecutable(ExecutableElement e, P p)
          访问 executable 元素。
 R visitPackage(PackageElement e, P p)
          访问包元素。
 R visitType(TypeElement e, P p)
          访问类型元素。
 R visitTypeParameter(TypeParameterElement e, P p)
          访问类型参数元素。
 R visitVariable(VariableElement e, P p)
          访问变量元素。
 
从类 javax.lang.model.util.AbstractElementVisitor6 继承的方法
visit, visit, visitUnknown
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

DEFAULT_VALUE

protected final R DEFAULT_VALUE
指定的默认值。

构造方法详细信息

ElementScanner6

protected ElementScanner6()
具体子类的构造方法;使用 null 作为默认值。


ElementScanner6

protected ElementScanner6(R defaultValue)
具体子类的构造方法;使用参数作为默认值。

方法详细信息

scan

public final R scan(Iterable<? extends Element> iterable,
                    P p)
迭代给定元素并对每个元素调用 scan(Element, P)。返回最后一次调用 scan 的结果;对于空 iterable,则返回 DEFAULT_VALUE

参数:
iterable - 要扫描的元素
p - 附加参数
返回:
最后一个元素的扫描;如果没有元素,则返回 DEFAULT_VALUE

scan

public R scan(Element e,
              P p)
通过调用 e.accept(this, p) 处理元素;此方法可被子类重写。

返回:
访问 e 的结果。

scan

public final R scan(Element e)
等效于 v.scan(e, null) 的便捷方法。

返回:
扫描 e 的结果。

visitPackage

public R visitPackage(PackageElement e,
                      P p)
访问包元素。 此实现扫描封装的元素。

参数:
e - 要访问的元素
p - 特定于 visitor 的参数
返回:
扫描的结果

visitType

public R visitType(TypeElement e,
                   P p)
访问类型元素。 此实现扫描封装的元素。

参数:
e - 要访问的元素
p - 特定于 visitor 的参数
返回:
扫描的结果

visitVariable

public R visitVariable(VariableElement e,
                       P p)
访问变量元素。 此实现扫描封装的元素。

参数:
e - 要访问的元素
p - 特定于 visitor 的参数
返回:
扫描的结果

visitExecutable

public R visitExecutable(ExecutableElement e,
                         P p)
访问 executable 元素。 此实现扫描参数。

参数:
e - 要访问的元素
p - 特定于 visitor 的参数
返回:
扫描的结果

visitTypeParameter

public R visitTypeParameter(TypeParameterElement e,
                            P p)
访问类型参数元素。 此实现扫描封装的元素。

参数:
e - 要访问的元素
p - 特定于 visitor 的参数
返回:
扫描的结果