在 Java 中“实例化”列表?

2022-08-31 08:00:01

尝试使用以下代码:

List<Integer> list = new List<Integer>();

我收到以下错误消息:

java.util.List是抽象的;无法实例化

这是什么意思,为什么我不能以与 a 相同的方式初始化?ListArrayList


答案 1

在Java中,是一个接口。也就是说,它不能直接实例化。List

相反,您可以使用哪个接口的实现,该接口使用数组作为其后备存储(因此得名)。ArrayList

既然一种,你可以很容易地把它改上:ArrayListList

List<T> mylist = new ArrayList<T>();

这与 .NET 形成鲜明对比,从 2.0 版开始,它是接口的默认实现。List<T>IList<T>


答案 2

List是一个接口,而不是一个具体的类。
接口只是一个类可以实现的一组函数;实例化接口没有任何意义。

ArrayList是一个碰巧实现此接口及其中所有方法的具体类。