有谁可以解释为什么以下两个申报案件无效?如果有人可以做志愿者,将非常感谢帮助。
案例1:List< Integer> ls= new List< Integer>();
案例2:List< List< Integer>> ll= new List< List< Integer>>();
答案 0 :(得分:4)
List
是一个Interface
而非一个类。
尝试使用ArrayList
答案 1 :(得分:1)
List
,更具体地说是java.util.List
,是一个接口,是java.util.Collection
接口的子类型。
无法实例化接口。实现接口并覆盖其所有抽象方法的类(不包括抽象类)是实例化和使用的类。
您可以从Java Collections Framework的以下List
实现中进行选择:
查看this文章。它解释了如何使用上述类。
另外,请查看this教程。
答案 2 :(得分:1)
因为List
中的interface
并且它们永远无法实例化。
ArrayList是List
interface
的实现类。
你可以这样做:
ArrayList al =new ArrayList(); //ArrayList implements List,so this will give you all functionality of List
答案 3 :(得分:1)
两者都是无效的
List
是一个接口,你不能创建它的对象(简单的继承不是吗?)
考虑一下
Interface A<> {
}
你正试图做
A<Something> a=new A<>();
与
相同List< Integer> ls= new List< Integer>();
但是java得到了ArrayList and LinkedList
,你必须这样做
List<Integer> list=new ArrayList<>();
当ArrayList
实现List
接口并扩展抽象类AbstractList