java.lang.Object
javax.lang.model.util.AbstractElementVisitor6<R,P>
javax.lang.model.util.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
方法。此类中的visitXyz
方法通过调用其enclosed elements
、parameters
等上的scan
来扫描其组件元素,如各个方法规范中所示。子类可以通过覆盖visitXyz
方法来控制元素的访问顺序。请注意,扫描器的客户端可以通过在感兴趣的根对象上调用v.scan(e, p)
而不是v.visit(e, p)
来获得所需的行为。
当子类覆盖visitXyz
方法时,新方法可以通过调用super.visitXyz
以默认方式扫描封闭元素。通过这种方式,具体访问者可以控制遍历组件元素的顺序与附加处理的顺序;例如,在覆盖方法的开头始终调用super.visitXyz
将产生前序遍历,等等。如果组件元素应以其他顺序遍历,覆盖的访问方法应调用scan
以所需顺序的元素。
- API 注意:
-
可以覆盖此类中的方法,但需遵守其一般契约。
警告: 此类实现的
ElementVisitor
接口可能会在未来添加方法,以适应未来版本的Java编程语言中添加的新的、当前未知的语言结构。因此,以"visit"
开头的方法可能会在将来添加到此类中;为避免不兼容性,扩展此类的类不应声明以"visit"
开头的任何实例方法。当添加新的访问方法时,此类中的默认实现将直接或间接调用
visitUnknown
方法。还将引入一个新的元素扫描访问者类,以对应新的语言级别;此访问者将对所访问方法的默认行为有所不同。当引入新的访问者时,此访问者类的部分内容可能会被弃用,包括其构造函数。 - 自版本:
- 1.6
- 参见:
-
Field Summary
-
Constructor Summary
ModifierConstructorDescriptionprotected
已弃用。版本6已过时;请更新到更高版本的访问者。protected
ElementScanner6
(R defaultValue) 已弃用。版本6已过时;请更新到更高版本的访问者。 -
Method Summary
Modifier and TypeMethodDescriptionfinal R
遍历给定元素并在每个元素上调用scan(Element, P)
。final R
等效于v.scan(e, null)
的便利方法。通过调用e.accept(this, p)
处理元素;此方法可以被子类覆盖。访问可执行元素。visitPackage
(PackageElement e, P p) 访问包元素。visitType
(TypeElement e, P p) 访问类型元素。访问类型参数元素。visitVariable
(VariableElement e, P p) 访问变量元素。Methods declared in class javax.lang.model.util.AbstractElementVisitor6
visit, visit, visitModule, visitRecordComponent, visitUnknown
-
Field Details
-
DEFAULT_VALUE
指定的默认值。
-
-
Constructor Details
-
ElementScanner6
Deprecated.Release 6 is obsolete; update to a visitor for a newer release level.具体子类的构造函数;使用null
作为默认值。 -
ElementScanner6
Deprecated.Release 6 is obsolete; update to a visitor for a newer release level.具体子类的构造函数;使用参数作为默认值。- 参数:
-
defaultValue
- 默认值
-
-
Method Details
-
scan
遍历给定元素并在每个元素上调用scan(Element, P)
。返回最后一次调用scan
的结果,或对于空的可迭代对象返回DEFAULT_VALUE
。- 参数:
-
iterable
- 要扫描的元素 -
p
- 附加参数 - 返回:
-
最后一个元素的扫描结果,如果没有元素则返回
DEFAULT_VALUE
-
scan
通过调用e.accept(this, p)
处理元素;此方法可以被子类覆盖。- 参数:
-
e
- 要扫描的元素 -
p
- 由扫描器指定的参数 - 返回:
-
访问
e
的结果。
-
scan
等效于v.scan(e, null)
的便利方法。- 参数:
-
e
- 要扫描的元素 - 返回:
-
扫描
e
的结果。
-
visitPackage
访问包元素。- 实现要求:
- 此实现扫描封闭元素。
- 参数:
-
e
- 要访问的元素 -
p
- 由访问者指定的参数 - 返回:
- 扫描的结果
-
visitType
访问类型元素。- 实现要求:
- 此实现扫描封闭元素。请注意,此实现不会扫描类型参数,因为类型参数不被视为类型的封闭元素。
- 参数:
-
e
- 要访问的元素 -
p
- 由访问者指定的参数 - 返回:
- 扫描的结果
-
visitVariable
访问变量元素。- 实现要求:
-
此实现扫描封闭元素,除非元素是
RESOURCE_VARIABLE
,在这种情况下将调用visitUnknown
。 - 参数:
-
e
- 要访问的元素 -
p
- 由访问者指定的参数 - 返回:
- 扫描的结果
-
visitExecutable
访问可执行元素。- 实现要求:
- 此实现扫描参数。请注意,此实现不会扫描类型参数。
- 参数:
-
e
- 要访问的元素 -
p
- 由访问者指定的参数 - 返回:
- 扫描的结果
-
visitTypeParameter
访问类型参数元素。- 实现要求:
- 此实现扫描封闭元素。
- 参数:
-
e
- 要访问的元素 -
p
- 由访问者指定的参数 - 返回:
- 扫描的结果
-