我无法按以下代码初始化列表:
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>
?
我无法按以下代码初始化列表:
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()
).
如果您判断该链接,您将发现一些实现List
的class
:
所有已知的实现类:
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
.