在 Java 中“实例化”列表?
尝试使用以下代码:
List<Integer> list = new List<Integer>();
我收到以下错误消息:
java.util.List
是抽象的;无法实例化
这是什么意思,为什么我不能以与 a 相同的方式初始化?List
ArrayList
尝试使用以下代码:
List<Integer> list = new List<Integer>();
我收到以下错误消息:
java.util.List
是抽象的;无法实例化
这是什么意思,为什么我不能以与 a 相同的方式初始化?List
ArrayList
在Java中,是一个接口。也就是说,它不能直接实例化。List
相反,您可以使用哪个接口的实现,该接口使用数组作为其后备存储(因此得名)。ArrayList
既然是一种,你可以很容易地把它改上:ArrayList
List
List<T> mylist = new ArrayList<T>();
这与 .NET 形成鲜明对比,从 2.0 版开始,它是接口的默认实现。List<T>
IList<T>
List
是一个接口,而不是一个具体的类。
接口只是一个类可以实现的一组函数;实例化接口没有任何意义。
ArrayList
是一个碰巧实现此接口及其中所有方法的具体类。