我无法按以下代码初始化列表:

List<String> supplierNames = new List<String>();
supplierNames.add("sup1");
supplierNames.add("sup2");
supplierNames.add("sup3");
System.out.println(supplierNames.get(1));

我面临以下错误:

无法实例化类型List<String>

如何实例化List<String>

推荐答案

如果你把API换成List,你会注意到上面写着:

Interface List<E>

interface意味着它不能被实例化(不可能有new List()).

如果您判断该链接,您将发现一些实现Listclass:

所有已知的实现类:

AbstractList, AbstractSequentialList, ArrayList, AttributeList, CopyOnWriteArrayList, LinkedList, RoleList, RoleUnresolvedList, Stack, Vector

其中一些可以实例化(未定义为abstract class的).使用他们的链接来了解更多关于他们的信息,例如:知道哪个更适合你的需求.

最常用的3个可能是:

 List<String> supplierNames1 = new ArrayList<String>();
 List<String> supplierNames2 = new LinkedList<String>();
 List<String> supplierNames3 = new Vector<String>();

Bonus:
You can also instantiate it with values, in an easier way, using the Arrays class, as follows:

List<String> supplierNames = Arrays.asList("sup1", "sup2", "sup3");
System.out.println(supplierNames.get(1));

但请注意,不允许向该列表添加更多元素,因为它是fixed-size.

Java相关问答推荐

伪类focus-in不适用于PFA中的选项卡

JPackaged应用程序启动MSI调试,然后启动System. exit()

Java Stream,需要更新列表对象列表

在AnyLogic中增加变量计数

使用标记时,场景大纲不在多个线程上运行

路径映射未发生

根据对象和值的参数将映射<;T、值&>转换为列表<;T&>

AssertJ Java:多条件断言

暂停计时器

如何使用SpringBoot中的可分页对整数作为字符串存储在数据库中时进行排序

Jolt变换JSON数组问题

在Eclipse中数组的可空性

try 使用Spring集成和MySQL实现发件箱模式时,锁定等待超时

Spring Boot中的应用程序.properties文件中未使用的属性

FETCH类型设置为LAZY,但它仍会发送第二个请求

Quarkus:运行时出现EnumConstantNotPresentException

除0错误/抱歉我的句子是PT

在Spring Boot中使用咖啡因进行缓存-根据输出控制缓存

如何在Selenium上继续使用最新的WebDriver版本

如何正确使用java.time类?