ジェネリックスに次の問題があります。私はスーパークラスBのメソッドを使って、スーパークラスBのフィールドの1つであるAのサブクラスのインスタンスを取得するサブクラスBBを求めています。誰かがこの問題を処理する最善の方法を教えてください。Javaジェネリックスの問題
下記のコードを実行してください(コメントは//こちらを参照してください)、それは自己説明的であり、とにかくそれを言葉にする方法はわかりません。
public class A {
String name;
A(String name){
this.name = name;
}
}
public class AA extends A{
String itchy
AA(String name) {
super(name);
this.itchy = name+"_itchy";
}
}
public class B<T extends A> {
T field;
T getField(String name) throws InstantiationException, IllegalAccessException{
//Problem here
field = // instance of AA; how do i do this?
return field;
}
}
public class BB extends B<AA>{
public static void main(String[] args) throws InstantiationException, IllegalAccessException {
BB b = new BB();
System.out.println(b.getField("It works").name);
}
}
問題を理解することは非常に難しいです。 –