我将使用一个具体的例子来使其更容易理解。
而不是使用:
Annotation[] annotations = method.getAnnotations();
我希望能够获得与每个注释关联的类类型数组:
Class<?>[] annotationClasses = method.getAnnotationTypes();
有没有办法覆盖Method类并添加我的自定义方法,该方法将使用getAnnotations来收集注释,但是返回类类型而不是Annotation类型?
答案 0 :(得分:1)
无法完全按照您的要求进行操作。 Method
是最终版,无法延期。
但是,你可以做到
Class < ? > [ ] getDeclaredAnnotations ( Method method )
{
Annotation [ ] as = method . getDeclaredAnnotations ( ) ;
Class < ? > [ ] bs = new Class < ? > [ as . length ] ;
for ( int i = 0 ; i < as . length ; i ++ )
{
Annotation a = as [ i ] ;
b [ i ] = a ;
}
return bs ;
}