gpt4 book ai didi

java - 为什么 List list = new ArrayList() 这会导致 TypeMismatch 错误
转载 作者:行者123 更新时间:2023-11-29 10:17:03 25 4
gpt4 key购买 nike

List<Object> list = new ArrayList<String>()

当我使用上面的行时,编译器给我类型不匹配错误。但据我所知,对象是字符串的父类(super class),如果我创建对象列表,那么它也应该接受字符串。那么为什么上面的说法是错误的。我正在寻找解释。

最佳答案

一句话,因为

Generic types are not polymorphic

即,即使 java.lang.Stringjava.lang.Object 的子类型,多态性也不适用于泛型类型。它仅适用于集合类型。因此

List<Object> list = new ArrayList<String>(); //this isn't valid
  List<Object> list = new ArrayList<Object>(); //valid
List<? extends Object> list = new ArrayList<String>();//valid

Why can't generic types be polymorphic?

关于java - 为什么 List<Object> list = new ArrayList<String>() 这会导致 TypeMismatch 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14935394/

25 4 0