将自定义方法添加到系统类

时间:2012-03-12 02:58:53

标签: java methods

我将使用一个具体的例子来使其更容易理解。

而不是使用:

Annotation[] annotations = method.getAnnotations();

我希望能够获得与每个注释关联的类类型数组:

Class<?>[] annotationClasses = method.getAnnotationTypes();

有没有办法覆盖Method类并添加我的自定义方法,该方法将使用getAnnotations来收集注释,但是返回类类型而不是Annotation类型?

1 个答案:

答案 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 ;
}