-
- 参数类型
-
R
- 此访问者方法的返回类型。 对于不需要返回结果的访问者,请使用Void
。 -
P
- 此访问者方法的附加参数的类型。 对于不需要其他参数的访问者,请使用Void
。
- 所有已知实现类:
-
AbstractElementVisitor6
,AbstractElementVisitor7
,AbstractElementVisitor8
,AbstractElementVisitor9
,ElementKindVisitor6
,ElementKindVisitor7
,ElementKindVisitor8
,ElementKindVisitor9
,ElementScanner6
,ElementScanner7
,ElementScanner8
,ElementScanner9
,SimpleElementVisitor6
,SimpleElementVisitor7
,SimpleElementVisitor8
,SimpleElementVisitor9
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语言时, 未使用默认方法特征。 但是,默认方法用于javax.lang.model.*
软件包的后续修订版,这些软件包仅需要在Java SE 8及更高版本平台版本上运行。- 从以下版本开始:
- 1.6
-
-
方法摘要
所有方法 实例方法 抽象方法 Default Methods 变量和类型 方法 描述 default R
visit(Element e)
便利方法相当于visit(e, null)
。R
visit(Element e, P p)
访问元素。R
visitExecutable(ExecutableElement e, P p)
访问可执行元素。default R
visitModule(ModuleElement 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)
访问变量元素。
-
-
-
方法详细信息
-
visit
default R visit(Element e)
一种方便的方法,相当于visit(e, null)
。- 实现要求:
-
默认实现是
visit(e, null)
。 - 参数
-
e
- 要访问的元素 - 结果
- 访客指定的结果
-
visitPackage
R visitPackage(PackageElement e, P p)
访问包元素。- 参数
-
e
- 要访问的元素 -
p
- 访问者指定的参数 - 结果
- 访客指定的结果
-
visitType
R visitType(TypeElement e, P p)
访问类型元素。- 参数
-
e
- 要访问的元素 -
p
- 访问者指定的参数 - 结果
- 访客指定的结果
-
visitVariable
R visitVariable(VariableElement e, P p)
访问变量元素。- 参数
-
e
- 要访问的元素 -
p
- 访问者指定的参数 - 结果
- 访客指定的结果
-
visitExecutable
R visitExecutable(ExecutableElement e, P p)
访问可执行元素。- 参数
-
e
- 要访问的元素 -
p
- 访问者指定的参数 - 结果
- 访客指定的结果
-
visitTypeParameter
R visitTypeParameter(TypeParameterElement e, P p)
访问类型参数元素。- 参数
-
e
- 要访问的元素 -
p
- 访问者指定的参数 - 结果
- 访客指定的结果
-
visitUnknown
R visitUnknown(Element e, P p)
访问一种未知的元素。 如果语言发展并且将新类型的元素添加到Element
层次结构中,则会发生这种情况。- 参数
-
e
- 要访问的元素 -
p
- 访问者指定的参数 - 结果
- 访客指定的结果
- 异常
-
UnknownElementException
- 访问者实现可以选择抛出此异常
-
visitModule
default R visitModule(ModuleElement e, P p)
访问模块元素。- 实现要求:
-
默认实现访问一个
ModuleElement
拨打visitUnknown(e, p)
。 - 参数
-
e
- 要访问的元素 -
p
- 访问者指定的参数 - 结果
- 访客指定的结果
- 从以下版本开始:
- 9
-
-