Java 为什么不编译:List<;列表<;字符串>&燃气轮机;lss=新阵列列表<;ArrayList<;字符串>&燃气轮机;();

Java 为什么不编译:List<;列表<;字符串>&燃气轮机;lss=新阵列列表<;ArrayList<;字符串>&燃气轮机;();,java,generics,arraylist,Java,Generics,Arraylist,以下代码: List<List<String>> lss = new ArrayList<ArrayList<String>>(); List lss=new ArrayList(); 导致此编译时错误的原因: Type mismatch: cannot convert from ArrayList<ArrayList<String>> to List<List<String>> 类型不匹配:无

以下代码:

List<List<String>> lss = new ArrayList<ArrayList<String>>();
List lss=new ArrayList();
导致此编译时错误的原因:

Type mismatch: cannot convert from ArrayList<ArrayList<String>> to List<List<String>>
类型不匹配:无法从ArrayList转换为List
要修复此问题,我将代码更改为:

List<ArrayList<String>> lss = new ArrayList<ArrayList<String>>();
List lss=new ArrayList();
为什么会抛出此错误?这是因为
List
中的泛型类型列表是实例化的,并且由于列表是一个接口,所以这是不可能的吗?

同样的原因

List<List> myList = new ArrayList<ArrayList>();

List myList=new ArrayList question了解更多详细信息。

问题在于泛型中的类型说明符(除非您告诉它)不允许子类。你必须完全匹配

尝试以下任一方法:

List<List<String>> lss = new ArrayList<List<String>>();
List lss=new ArrayList();
或:

列表来自

注:给定两种混凝土类型A和B(例如,编号和 整数),
MyClass
MyClass
没有关系,无论 A和B是否相关。
MyClass
MyClass
是对象

没错,大括号中的所有内容都应该匹配。只有大括号之前的类才能是子类型。
List<? extends List<String>> lss = new ArrayList<ArrayList<String>>();