Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
泛型类型java.util.List继承_Java_List_Generics_Inheritance - Fatal编程技术网

泛型类型java.util.List继承

泛型类型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(不

假设我有两个班,一个是“人”,另一个是“孩子”子项继承自。我还有另外两个班Class1Class2

Class1的构造函数只有一个参数—它是一个java.util。列表。 Class2子类的列表。我想把这些孩子传给Class1构造函数。但我做不到——Eclipse是这么说的

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答案的子类,因为有一个解释说明为什么这是不可能的