泛型类型java.util.List继承
假设我有两个班,一个是“人”,另一个是“孩子”子项继承自人。我还有另外两个班Class1和Class2 Class1的构造函数只有一个参数—它是一个java.util。的列表。 Class2有子类的列表。我想把这些孩子传给Class1构造函数。但我做不到——Eclipse是这么说的泛型类型java.util.List继承,java,list,generics,inheritance,Java,List,Generics,Inheritance,假设我有两个班,一个是“人”,另一个是“孩子”子项继承自人。我还有另外两个班Class1和Class2 Class1的构造函数只有一个参数—它是一个java.util。的列表。 Class2有子类的列表。我想把这些孩子传给Class1构造函数。但我做不到——Eclipse是这么说的 The constructor Class1(List<Child>) is undefined. 构造函数Class1(列表)未定义。 我认为这是可能的,因为孩子继承自人。有什么问题 SSCCE(不
The constructor Class1(List<Child>) is undefined.
构造函数Class1(列表)未定义。
我认为这是可能的,因为孩子继承自人。有什么问题
SSCCE(不可编译)可能如下所示:
在2班的某个地方
List<Child> childs = new ArrayList<Child>();
new Class1(childs);
List childs=new ArrayList();
新班级1(儿童);
一级建造师
public Class1(List<Person> persons)
{
//do nothing();
}
public Class1(列出人员)
{
//什么也不做;
}
如果您这样定义构造函数
public Class1(List<? extends Person> persons) {
}
public Class1(List如果List
是List
,您可以执行以下操作:
List<Apple> apples = new ArrayList<>();
List<Fruit> fruits = apples; // this doesn't actually compile
fruits.add(new Banana());
List apples=new ArrayList();
List fruits=apples;//这实际上并没有编译
水果。添加(新香蕉());
如果你想让Class1接受任何类型的人的列表,它应该采取ListList不是Listbetter答案的子类,因为有一个解释说明为什么这是不可能的