我有两个类,一个超类和一个继承该超类的子类。我想将两个数组列表合并为一个。这两个数组列表具有不同的类型。一个是超类列表,另一个是子类。
这是我的三个列表:
public ArrayList<subClass> list1;
public ArrayList<superClass> list2;
public ArrayList<? extends superClass> combined; // so this accepts all subclasses as well
然后我要完成以下任务:
combined.addAll(list1);
combined.addAll(list2);
编译器在说:
addAll in arrayList cannot be applied to list1
addAll in arrayList cannot be applied to list2
但是:combined = list1;
没有错误。尽管不能将两个列表合并在一起,但带有等号。
我该如何实现?