ジェネリック クラス がありますFoo<T>
。 の メソッドでFoo
、 型のクラス インスタンスを取得したいのですT
が、 を呼び出すことができませんT.class
。
これを回避するには、どのような方法が好ましいでしょうかT.class
?
ベストアンサー1
簡単に答えると、Javaではジェネリック型パラメータのランタイム型を調べる方法はありません。Javaチュートリアル詳細については。
Class
これに対する一般的な解決策は、ジェネリック型のコンストラクタに型パラメータを渡すことです。例:
class Foo<T> {
final Class<T> typeParameterClass;
public Foo(Class<T> typeParameterClass) {
this.typeParameterClass = typeParameterClass;
}
public void bar() {
// you can access the typeParameterClass here and do whatever you like
}
}