假设我有@foo
的运行时注释@Target({ElementType.PARAMETER})
。
还假设我用它来注释方法:
void someFunction(@foo Bar bar) {
// ...
}
我有一个实例Annotation annotation
,对应上面someFunction
中的注释。
是否仍然使用我的实例annotation
(和反射)来确定参数类型bar
的类型为Bar
?
答案 0 :(得分:2)
不,鉴于您的注释实例,您无法具体确定它的注释内容。
Annotation
界面公开annotationType()
,您可以访问注释类型(您的)。因此,您可以在类型上使用相应的Class
至retrieve Target
注释的值。这是你能做的最好的事情。
请注意,Annotation
只是一个界面。我可以像任何其他人一样创建它的实例。
new Annotation() {
@Override
public Class<? extends Annotation> annotationType() {
return Target.class; // whatever
}
};