R
-这个访问者的方法的返回类型。利用游客不需要返回的结果
Void
。
P
-这个访问者的方法的附加参数的类型。利用游客不需要一个额外的参数
Void
。
public interface TypeVisitor<R,P>
accept
方法,最适用于这种类型的
visitXYZ调用方法。
实现了这个接口的类可能或不可能把一NullPointerException
如果附加参数p
是null
;看到执行类的细节文档。
警告:这种方法将被添加到这个接口来适应新的,目前未知的可能,语言结构增加了java编程语言的未来版本™。因此,直接实现此接口的访问者类可能是与平台的未来版本不兼容的源。为了避免这种源代码不兼容,鼓励访问者实现,而不是扩展实现此接口的适当的抽象的访问类来实现。然而,一个应用接口通常应该使用此访问者接口作为参数的类型、返回类型等,而不是抽象类的一个。
请注意,以适应新的语言结构的方法可以添加在源兼容的方式,如果他们被添加为默认的方法。然而,默认的方法是只适用于java SE 8和更高版本和javax.lang.model.*
套餐捆绑在java SE 8需要也可运行在java SE 7。因此,默认的方法不能使用时,javax.lang.model.*
延伸覆盖java SE 8语言特点。然而,默认的方法中可以使用,只需运行在java SE 8和更高版本的平台javax.lang.model.*
包随后的修订。
Modifier and Type | Method and Description |
---|---|
R |
visit(TypeMirror t)
一个方便的方法相当于
v.visit(t, null) 。
|
R |
visit(TypeMirror t, P p)
访问类型。
|
R |
visitArray(ArrayType t, P p)
访问数组类型。
|
R |
visitDeclared(DeclaredType t, P p)
访问已声明的类型。
|
R |
visitError(ErrorType t, P p)
访问错误类型。
|
R |
visitExecutable(ExecutableType t, P p)
访问可执行类型。
|
R |
visitIntersection(IntersectionType t, P p)
访问交集类型。
|
R |
visitNoType(NoType t, P p)
访问一个
NoType 实例。
|
R |
visitNull(NullType t, P p)
访问空类型。
|
R |
visitPrimitive(PrimitiveType t, P p)
访问一个原始类型。
|
R |
visitTypeVariable(TypeVariable t, P p)
访问类型变量。
|
R |
visitUnion(UnionType t, P p)
访问联盟类型。
|
R |
visitUnknown(TypeMirror t, P p)
拜访一个未知的类型。
|
R |
visitWildcard(WildcardType t, P p)
访问一个通配符类型。
|
R visit(TypeMirror t, P p)
t
型访问
p
-客人指定的参数
R visit(TypeMirror t)
v.visit(t, null)
。
t
-元素访问
R visitPrimitive(PrimitiveType t, P p)
t
型访问
p
-客人指定的参数
R visitDeclared(DeclaredType t, P p)
t
型访问
p
-客人指定的参数
R visitTypeVariable(TypeVariable t, P p)
t
型访问
p
-客人指定的参数
R visitWildcard(WildcardType t, P p)
t
型访问
p
-客人指定的参数
R visitExecutable(ExecutableType t, P p)
t
型访问
p
-客人指定的参数
R visitUnknown(TypeMirror t, P p)
TypeMirror
层次发生。
t
型访问
p
-客人指定的参数
UnknownTypeException
-一个访问者实现可以抛出该异常
R visitIntersection(IntersectionType t, P p)
t
型访问
p
-客人指定的参数
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.