R
- 这个访问者的方法的返回类型。
对于不需要返回结果的访问者,请使用Void
。
P
- 此访问者方法的附加参数类型。
对不需要Void
的访问者使用Void。
@SupportedSourceVersion(value=RELEASE_7) public class ElementScanner7<R,P> extends ElementScanner6<R,P>
RELEASE_7
源版本的默认行为的程序元素的扫描访问者。
所述visitXYZ种方法在这个类通过调用扫描其成分元素scan
他们enclosed elements , parameters ,等等,如在单独的方法规范表示。
一个子类可以通过覆盖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
方法。 还将引入新的元素扫描器访问者类来对应于新的语言级别; 该访问者对于访问方法将具有不同的默认行为。 当新访客被介绍时,全部或部分访问者可能会被弃用。
ElementScanner6
, ElementScanner8
DEFAULT_VALUE
Modifier | Constructor and Description |
---|---|
protected |
ElementScanner7()
具体子类的构造方法
使用 null 作为默认值。
|
protected |
ElementScanner7(R defaultValue)
具体子类的构造方法
使用参数作为默认值。
|
Modifier and Type | Method and Description |
---|---|
R |
visitVariable(VariableElement e, P p)
此实现扫描包含的元素。
|
scan, scan, scan, visitExecutable, visitPackage, visitType, visitTypeParameter
visit, visit, visitUnknown
protected ElementScanner7()
null
作为默认值。
protected ElementScanner7(R defaultValue)
defaultValue
- 默认值
public R visitVariable(VariableElement e, P p)
visitVariable
在接口
ElementVisitor<R,P>
visitVariable
在
ElementScanner6<R,P>
e
- 要访问的元素
p
- 访客指定的参数