-
- 参数类型
-
R
- 这个访问者的方法的返回类型 -
P
- 访问者方法的附加参数类型。
- 所有已知实现类:
-
AbstractAnnotationValueVisitor6
,AbstractAnnotationValueVisitor7
,AbstractAnnotationValueVisitor8
,AbstractAnnotationValueVisitor9
,SimpleAnnotationValueVisitor6
,SimpleAnnotationValueVisitor7
,SimpleAnnotationValueVisitor8
,SimpleAnnotationValueVisitor9
public interface AnnotationValueVisitor<R,P>
注释类型元素的值的访问者,使用访问者设计模式的变体。 与根据类型层次结构的成员的具体类型进行调度的标准访问者不同,该访问者根据存储的数据类型进行调度; 没有明确的子类存储,例如boolean
值与int
值。 实现此接口的类用于在编译时该值的类型未知时对值进行操作。 当访问者传递给值为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.*
软件包的后续修订版本。- 从以下版本开始:
- 1.6
-
-
方法摘要
所有方法 接口方法 抽象方法 Default Methods Modifier and Type 方法 描述 default R
visit(AnnotationValue av)
方便的方法相当于visit(av, null)
。R
visit(AnnotationValue av, P p)
访问注释值。R
visitAnnotation(AnnotationMirror a, P p)
访问注释中的注释值。R
visitArray(List<? extends AnnotationValue> vals, P p)
访问注释中的数组值。R
visitBoolean(boolean b, P p)
访问一个注释中的一个boolean
值。R
visitByte(byte b, P p)
访问一个注释中的一个byte
值。R
visitChar(char c, P p)
访问一个注释中的一个char
值。R
visitDouble(double d, P p)
访问一个注释中的一个double
值。R
visitEnumConstant(VariableElement c, P p)
访问注释中的枚举
值。R
visitFloat(float f, P p)
访问一个注释中的一个float
值。R
visitInt(int i, P p)
访问注释中的一个int
值。R
visitLong(long i, P p)
访问一个注释中的一个long
值。R
visitShort(short s, P p)
访问一个注释中的一个short
值。R
visitString(String s, P p)
访问注释中的字符串值。R
visitType(TypeMirror t, P p)
访问注释中的类型值。R
visitUnknown(AnnotationValue av, P p)
访问未知类型的注释值。
-
-
-
方法详细信息
-
visit
R visit(AnnotationValue av, P p)
访问注释值。- 参数
-
av
- 要访问的值 -
p
- 访客指定的参数 - 结果
- 访客指定的结果
-
visit
default R visit(AnnotationValue av)
一个方便的方法相当于visit(av, null)
。- 实现要求:
-
默认实现为
visit(av, null)
。 - 参数
-
av
- 要访问的值 - 结果
- 访客指定的结果
-
visitBoolean
R visitBoolean(boolean b, P p)
访问一个注释中的一个boolean
值。- 参数
-
b
- 正在访问的值 -
p
- 访客指定的参数 - 结果
- 访问的结果
-
visitType
R visitType(TypeMirror t, P p)
访问注释中的类型值。- 参数
-
t
- 正在访问的值 -
p
- 访客指定的参数 - 结果
- 访问的结果
-
visitEnumConstant
R visitEnumConstant(VariableElement c, P p)
访问注释中的枚举
值。- 参数
-
c
- 正在访问的值 -
p
- 访客指定的参数 - 结果
- 访问的结果
-
visitAnnotation
R visitAnnotation(AnnotationMirror a, P p)
访问注释中的注释值。- 参数
-
a
- 正在访问的值 -
p
- 访客指定的参数 - 结果
- 访问的结果
-
visitArray
R visitArray(List<? extends AnnotationValue> vals, P p)
访问注释中的数组值。- 参数
-
vals
- 正在访问的值 -
p
- 访客指定的参数 - 结果
- 访问的结果
-
visitUnknown
R visitUnknown(AnnotationValue av, P p)
访问未知类型的注释值。 如果语言发展,并且可以将新种类的值存储在注释中,则可能会发生这种情况。- 参数
-
av
- 正在访问的未知值 -
p
- 访客指定的参数 - 结果
- 访问的结果
- 异常
-
UnknownAnnotationValueException
- 访问者实现可以可选地抛出该异常
-
-