R
- 这个访问者的方法的返回类型。
对不需要返回结果的访问者使用Void
。
P
- 此访问者方法的附加参数类型。
对不需要Void
的访问者使用Void。
@SupportedSourceVersion(value=RELEASE_8) public class ElementScanner8<R,P> extends ElementScanner7<R,P>
RELEASE_8
源版本的默认行为的程序元素的扫描访问者。
所述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
, ElementScanner7
DEFAULT_VALUE
Modifier | Constructor and Description |
---|---|
protected |
ElementScanner8()
具体子类的构造方法
使用 null 作为默认值。
|
protected |
ElementScanner8(R defaultValue)
具体子类的构造方法
使用参数作为默认值。
|
visitVariable
scan, scan, scan, visitExecutable, visitPackage, visitType, visitTypeParameter
visit, visit, visitUnknown
protected ElementScanner8()
null
作为默认值。
protected ElementScanner8(R defaultValue)
defaultValue
- 默认值