Integer类型泛型的Java List声明

时间:2016-06-07 05:24:37

标签: java list collections

有谁可以解释为什么以下两个申报案件无效?如果有人可以做志愿者,将非常感谢帮助。

案例1:List< Integer> ls= new List< Integer>();

案例2:List< List< Integer>> ll= new List< List< Integer>>();

4 个答案:

答案 0 :(得分:4)

List是一个Interface而非一个类。

尝试使用ArrayList

答案 1 :(得分:1)

List,更具体地说是java.util.List,是一个接口,是java.util.Collection接口的子类型。

无法实例化接口。实现接口并覆盖其所有抽象方法的类(不包括抽象类)是实例化和使用的类。

您可以从Java Collections Framework的以下List实现中进行选择:

  • 的java.util.ArrayList
  • java.util.LinkedList中
  • java.util.Vector中
  • java.util.Stack中

查看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