我无法像以下代码那样初始化列表:
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>?
如果您检查API,List您会注意到它说:
List
Interface List<E>
作为一种interface手段,它不能被实例化(new List()不可能)。
interface
new List()
如果您检查该链接,您会发现一些class实现的 es List:
class
所有已知的实现类: AbstractList, AbstractSequentialList, ArrayList, AttributeList, CopyOnWriteArrayList, LinkedList, RoleList, RoleUnresolvedList, Stack,Vector
所有已知的实现类:
AbstractList, AbstractSequentialList, ArrayList, AttributeList, CopyOnWriteArrayList, LinkedList, RoleList, RoleUnresolvedList, Stack,Vector
AbstractList
AbstractSequentialList
ArrayList
AttributeList
CopyOnWriteArrayList
LinkedList
RoleList
RoleUnresolvedList
Stack
Vector
其中一些可以实例化(那些未定义为的abstract class)。使用他们的链接了解更多关于他们的信息,即:了解哪个更适合您的需求。
abstract class
最常用的 3 个大概是:
List<String> supplierNames1 = new ArrayList<String>(); List<String> supplierNames2 = new LinkedList<String>(); List<String> supplierNames3 = new Vector<String>();
奖励: 您还可以使用值以更简单的方式实例化它,Arrays class如下所示:
Arrays
List<String> supplierNames = Arrays.asList("sup1", "sup2", "sup3"); System.out.println(supplierNames.get(1));
但请注意,您不能向该列表添加更多元素,因为它是fixed-size.
fixed-size