6

ジェネリックメソッドの戻り値の型を取得する方法はありますか?

public interface MyGeneric<T> {
  T doSomething();
}

public interface MyElement extends MyGeneric<Element> {

}

public class Main {
  public static final void main(String[] args) {
    System.out.println(MyElement.class.getMethod("doSomething", new Class<?>[0]).magic()); // => Element
  }
}

Method.getReturnType() を使用すると、java.lang.Object なしで取得できます。メソッド「魔法」は存在しますか?

4

2 に答える 2

1

いいえ、その魔法は一般には存在しません。そのデータを取得するためにトリックを作成したい場合は、ここで説明されているように、インターフェイスでそのデータを要求できます。

反対に、タイプが特別な場合 (List など) は、それを行うことができます。特別なタイプについては、この回答を参照してください。

于 2013-11-11T13:06:54.943 に答える