R
- 此 visitor 的方法的返回类型。对于不需要返回结果的 visitor,使用
Void
。
public interface TypeVisitor<R,P>
类型的 visitor,使用 visitor 设计模式的样式。在编译时某个类型的种类未知时,实现此接口的类被用来对该类型进行操作。在将 visitor 传递给某个类型的 accept
方法时,最适用于该类型的 visitXYZ 方法将被调用。
如果附加参数 p
为 null
,则实现此接口的类有可能抛出 NullPointerException
;有关详细信息,请参阅实现类的文档。
警告: 以后可能会向此接口添加一些方法,以适应添加到 Java™ 编程语言未来版本中的新(当前未知的)语言结构。所以,直接实现此接口的 visitor 类可能与平台的未来版本不兼容。为了避免这种不兼容性,建议 visitor 实现扩展实现此接口的抽象 visitor 类。不过,API 通常应该使用此 visitor 接口作为参数类型、返回类型等,而不是将它作为抽象类之一。
方法摘要 | |
---|---|
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) 访问 executable 类型。 |
R |
visitNoType(NoType t, P p) 访问 NoType 实例。 |
R |
visitNull(NullType t, P p) 访问 null 类型。 |
R |
visitPrimitive(PrimitiveType t, P p) 访问基本类型。 |
R |
visitTypeVariable(TypeVariable t, P p) 访问类型变量。 |
R |
visitUnknown(TypeMirror t, P p) 访问未知种类的类型。 |
R |
visitWildcard(WildcardType t, P p) 访问通配符类型。 |
方法详细信息 |
---|
R visit(TypeMirror t, P p)
t
- 要访问的类型
p
- 特定于 visitor 的参数
R visit(TypeMirror t)
v.visit(t, null)
的便捷方法。
t
- 要访问的元素
R visitPrimitive(PrimitiveType t, P p)
t
- 要访问的类型
p
- 特定于 visitor 的参数
R visitNull(NullType t, P p)
t
- 要访问的类型
p
- 特定于 visitor 的参数
R visitArray(ArrayType t, P p)
t
- 要访问的类型
p
- 特定于 visitor 的参数
R visitDeclared(DeclaredType t, P p)
t
- 要访问的类型
p
- 特定于 visitor 的参数
R visitError(ErrorType t, P p)
t
- 要访问的类型
p
- 特定于 visitor 的参数
R visitTypeVariable(TypeVariable t, P p)
t
- 要访问的类型
p
- 特定于 visitor 的参数
R visitWildcard(WildcardType t, P p)
t
- 要访问的类型
p
- 特定于 visitor 的参数
R visitExecutable(ExecutableType t, P p)
t
- 要访问的类型
p
- 特定于 visitor 的参数
R visitNoType(NoType t, P p)
NoType
实例。
t
- 要访问的类型
p
- 特定于 visitor 的参数
R visitUnknown(TypeMirror t, P p)
TypeMirror
层次结构中添加了新种类的类型,则会发生这种情况。
t
- 要访问的类型
p
- 特定于 visitor 的参数
UnknownTypeException
- visitor 实现可以有选择地抛出此异常