私はタイトルがかなり乱雑であることを知っていますが、この問題をちょっとした言葉で説明する方法はわかりません。Javaジェネリックメソッド一般的な内部クラスを返す方法
てみましょう:
public class A<T> {
T foo;
public A(T foo) {
this.foo = foo;
}
}
public class B {
public A<T> getA() {
...
}
}
さて、obviuslyそのBの方法でもコンパイルされません。ポイントは、返すBクラスのメソッドとクラスAがそのメソッドに何らかの形で渡されなければならないAクラスが必要なことです。このメソッド内でTのインスタンスを作成してAのインスタンスを返すことができます(AClassはは、不明である、それは文句、と明らかにそれは右...)だから、
、私はどのように渡すことができ
public A getA(Class aClass) {
return new A<aClass> ...
}
しかし、それがすべてではコンパイルされません。
は、私のような何かを試してみましたAのインスタンスを作成するために、そのメソッドのクラスT?私の質問を理解していただければ幸いです。事前に
どうもありがとう、
あなたが正しい@marstran、 'AClassは:これまでこの
を変更'は実際に' A'ではなく 'T'のクラスなので、' A'でも 'new'が必要です。ありがとうございました! – dasblinkenlight
誰がコメントを削除しましたか? – marstran
@Franそして、これはかなり悪い解決策です。それは、反射を全く必要としてはいけないもののために反射を使用します。また、 'T'には引数なしのコンストラクタがあると仮定しています。これはあなたが全く確信できないものです。 – marstran