我创建了 2 个对象:Person
和 Men
(扩展 Person
)。然后,我创建了一个通用集合来仅添加 Men
对象,但由于某种原因,它不允许我添加 Men 对象。
class Person{
}
class Men extends Person{
}
public class test extends HashSet<Person>{
public static void main(String[] args) {
List<? extends Person> p1 = new ArrayList<Men>();
p1.add(new Men());
}
}
最佳答案
List<? extends Person>
表示“扩展 List
的某种具体类型的 Person
,但我们不知道该具体类型实际上是什么”。据我们所知,它可能是 List<Women>
!因此,您实际上无法向此列表添加任何内容( null
除外)。您可能想要:
List<Men> p1 = new ArrayList<Men>(); // a list of only Men instances
另请参阅:Wildcards
关于java - 集合泛型无法添加定义类型的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19161485/