gpt4 book ai didi

java - 泛型类型 java.util.List 继承

转载 作者:行者123 更新时间:2023-12-01 21:26:42 25 4
gpt4 key购买 nike

假设我有两个类 PersonChild继承自。我还有另外 2 个类(class) Class1Class2

Class1 的构造函数只有一个参数 - 它是 Person 的 java.util.ListClass2子级列表。我想将这些子级传递给 Class1 构造函数。但我做不到 - Eclipse 是这么说的

The constructor Class1(List<Child>) is undefined.

我认为这是可能的,因为Child继承自Person。有什么问题吗?

SSCCE(不可编译)可能如下所示:

2级某处

List<Child> childs = new ArrayList<Child>();
new Class1(childs);

Class1 构造函数

public Class1(List<Person> persons)
{
//do nothing();
}

最佳答案

如果 List<Apple>List<Fruit> ,您可以执行以下操作:

List<Apple> apples = new ArrayList<>();
List<Fruit> fruits = apples; // this doesn't actually compile
fruits.add(new Banana());

因此,它将完全破坏泛型类型的类型安全性。如果您希望 Class1 接受任何类型的 Person 的列表,则应该采用 List<? extends Person>作为参数。

关于java - 泛型类型 java.util.List 继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20761980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com