-
- 参数类型
-
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语言时, 未使用默认方法特征。 但是,默认方法用于javax.lang.model.*软件包的后续修订版,这些软件包仅需要在Java SE 8及更高版本平台上运行。- 从以下版本开始:
- 1.6
-
-
方法摘要
所有方法 实例方法 抽象方法 Default Methods 变量和类型 方法 描述 default Rvisit(AnnotationValue av)一种方便的方法,相当于visit(av, null)。Rvisit(AnnotationValue av, P p)访问注释值。RvisitAnnotation(AnnotationMirror a, P p)访问注释中的注释值。RvisitArray(List<? extends AnnotationValue> vals, P p)访问注释中的数组值。RvisitBoolean(boolean b, P p)访问注释中的boolean值。RvisitByte(byte b, P p)在注释中访问byte值。RvisitChar(char c, P p)访问注释中的char值。RvisitDouble(double d, P p)在注释中访问double值。RvisitEnumConstant(VariableElement c, P p)在注释中访问枚举值。RvisitFloat(float f, P p)访问注释中的float值。RvisitInt(int i, P p)访问注释中的int值。RvisitLong(long i, P p)在注释中访问long值。RvisitShort(short s, P p)访问注释中的short值。RvisitString(String s, P p)访问注释中的字符串值。RvisitType(TypeMirror t, P p)访问注释中的类型值。RvisitUnknown(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- 要访问的值 - 结果
- 访客指定的结果
-
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- 访客实现可以选择抛出此异常
-
-