私はJava Genericsを初めて使用し、現在Generic Codingを試しています....最終的な目標は、古い非ジェネリックレガシーコードを汎用コードに変換することです...
IS-A で 2 つのクラスを定義しました。つまり、一方は他方のサブクラスです。
public class Parent {
private String name;
public Parent(String name) {
super();
this.name = name;
}
}
public class Child extends Parent{
private String address;
public Child(String name, String address) {
super(name);
this.address = address;
}
}
今、バインドされたワイルドカードを使用してリストを作成しようとしています。コンパイラエラーが発生します。
List<? extends Parent> myList = new ArrayList<Child>();
myList.add(new Parent("name")); // compiler-error
myList.add(new Child("name", "address")); // compiler-error
myList.add(new Child("name", "address")); // compiler-error
少し混乱しました。これの何が問題なのか教えてください。