特定の実体クラスのメソッドから、インターフェースに定義された同じメソッドについてるアノテーションを簡単に取る方法しりませんか?
java
1public interface A { 2 @Foo 3 String hoge(String str); 4 String hoge(Integer i); 5}
java
1public class B implements A { 2 @Override String hoge(String str) { return str; } 3 @Override String hoge(Integer i) { return String.valueOf(i); } 4}
のようなインターフェースとクラスがあり、
java
1Method method = B.class.getDeclaredMethod("hoge", new Class[] { String.class });
のようなメソッドがすでに取得されているとき、このmethod
からA
の@Foo
を取得しにいくための最適解を知りたいです。
method.getDeclaringClass().getInterfaces()[0].getMethod(method.getName(), method.getParameterTypes()).getAnnotations()
のようにすれば思うようなことは出来ますが、
子クラスのメソッドのパラメータ型の境界が変わってたりした時に大丈夫なの、
とか、Method#getSuperMethod
みたいなもうちょっと素直なAPIないの、とかが聞きたい点です。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/09/11 04:27