问题
这个问题在这里已有答案:
- 如何在Java中初始化List <String>对象? 11个答案
尝试使用以下代码:
List<Integer> list = new List<Integer>();
我收到以下错误消息:
java.util.List是抽象的;无法实例化
这是什么意思,为什么我不能像aArrayList
一样初始化aList
?
#1 热门回答(151 赞)
在Java中,List
是一个接口。也就是说,它无法直接实例化。
相反,你可以使用ArrayList
,它是该接口的一个实现,它使用数组作为其后备存储(因此名称)。
自ArrayList
isa种类List
,你可以轻松地将其翻译:
List<T> mylist = new ArrayList<T>();
这与.NET形成对比,因为版本2.0,List<T>
是IList<T>
接口的默认实现。
#2 热门回答(27 赞)
List
是一个接口,而不是具体的类。
接口只是一个类可以实现的一组函数;实例化接口没有任何意义。
ArrayList
是碰巧实现此接口及其中所有方法的具体类。
#3 热门回答(21 赞)
UseList<Integer> list = new ArrayList<Integer>();