私は例として、これら2つのクラスを持っている:Tのジェネリック型のインスタンス化?
public class AClass {
public int i;
public static int static_i;
public AClass(int i) {
}
public void aMethod() {}
public static void aStaticMethod() {}
public static AClass getInstance(int i) {
return new AClass(i);
}
}
と
public class AnOtherClass<T extends AClass> {
T aMember;
public void method() {
// Instanciation of T failed
aMember = new T(0);
// Instanciation via getInstance static method failed
aMember = T.getInstance(0);
// OK
T.aStaticMethod();
// OK
aMember.aMethod();
}
}
- インスタンス化に失敗しました: "タイプTをインスタンス化することはできません"
- インスタンスのgetInstance静的メソッドを介して失敗しました: "タイプの不一致:AClassからTに変換できません "
- どうしてですか?なぜ私はあなたがこれを行うことができないのか分かりません。
- なぜTはAClassのサブクラスなので、AClassをTに変換できないのですか?
http://stackoverflow.com/questions/2434041/instantiating-generics-type-in-java http://stackoverflow.com/questions/2116404/java-generics-why-this-wont-work http:///stackoverflow.com/questions/1090458/instantiating-a-generic-class-in-java –