R
- 这个访问者的方法的返回类型。
对不需要返回结果的访问者使用Void
。
P
- 访问者方法的附加参数类型。
对不需要其他Void
的访问者使用Void。
public interface ElementVisitor<R,P>
accept
方法时,调用最适用于该元素的visitXYZ方法。
实现此界面的类可以或可以不抛出NullPointerException
如果附加参数p
是null
; 有关详细信息,请参阅实施类的文档。
警告:可能的方法将添加到此界面以适应未来版本的Java编程语言中添加的新的,当前未知的语言结构。 因此,直接实现此接口的访问者类可能与未来的平台版本不兼容。 为了避免这种源不兼容,我们鼓励访问者实现扩展实现此接口的适当抽象访问类。 然而,API通常应该将此访问接口用作参数,返回类型等的类型,而不是抽象类之一。
请注意,如果添加为默认方法,则可以以源兼容的方式添加适应新语言结构的方法 。 但是,默认方法仅适用于Java SE 8和更高版本,并且Java SE 8中捆绑的javax.lang.model.*
软件包也需要在Java SE 7上运行。因此,在扩展javax.lang.model.*
以涵盖Java SE 8语言时,不能使用默认方法特征。 但是,默认方法可能用于仅在Java SE 8和更高版本平台上运行的javax.lang.model.*
软件包的javax.lang.model.*
版本。
AbstractElementVisitor6
, AbstractElementVisitor7
Modifier and Type | Method and Description |
---|---|
R |
visit(Element e)
方便的方法相当于
v.visit(e, null) 。
|
R |
visit(Element e, P p)
访问元素
|
R |
visitExecutable(ExecutableElement e, P p)
访问可执行元素。
|
R |
visitPackage(PackageElement e, P p)
访问包元素。
|
R |
visitType(TypeElement e, P p)
访问类型元素。
|
R |
visitTypeParameter(TypeParameterElement e, P p)
访问类型参数元素。
|
R |
visitUnknown(Element e, P p)
访问一种未知的元素。
|
R |
visitVariable(VariableElement e, P p)
访问可变元素。
|
R visitPackage(PackageElement e, P p)
e
- 要访问的元素
p
- 访客指定的参数
R visitType(TypeElement e, P p)
e
- 要访问的元素
p
- 访客指定的参数
R visitVariable(VariableElement e, P p)
e
- 要访问的元素
p
- 访客指定的参数
R visitExecutable(ExecutableElement e, P p)
e
- 要访问的元素
p
- 访客指定的参数
R visitTypeParameter(TypeParameterElement e, P p)
e
- 要访问的元素
p
- 访客指定的参数
R visitUnknown(Element e, P p)
Element
层次结构中,则可能会发生这种情况。
e
- 要访问的元素
p
- 访客指定的参数
UnknownElementException
- 访客实现可以可选地抛出此异常