2012-03-12 10 views
0

具体的な例を使用して理解しやすくします。カスタムメソッドをシステムクラスに追加する

よりもむしろ使用:

Annotation[] annotations = method.getAnnotations(); 

を私は、各注釈に関連付けられたクラス型の配列を取得できるようにしたいと思います:

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

は、メソッドをオーバーライドする方法はありますgetAnnotationsを使用してアノテーションを収集するカスタムメソッドを追加しますが、アノテーションタイプではなくクラスタイプを返します。

答えて

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 ; 
} 
関連する問題