Collection<string> collection = new ArrayList<string>();
我注意到上面的代码实际上与ArrayList<string> collection = new ArrayList<string>();
这是否意味着我可以使用任何名称替换第一个Collection / ArrayList,如
anyname<string> collection = new ArrayList<string>();
谢谢!
答案 0 :(得分:0)
您可以这样做,因为ArrayList implements Collection
Class ArrayList<E>
java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractList<E>
java.util.ArrayList<E>
All Implemented Interfaces:
Serializable, Cloneable, Iterable<E>, Collection<E>, List<E>, RandomAccess
---->
http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html
答案 1 :(得分:0)
ArrayList
实现了界面Collection
,因此集合可以投射到Collection
请参阅http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html
以及关于使用接口http://docs.oracle.com/javase/tutorial/java/IandI/interfaceAsType.html
的本教程答案 2 :(得分:0)
Collection
是一个界面,而ArrayList
是Collection
的实现之一。
由于ArrayList --> List --> Collection
,您可以将ArrayList
个实例声明为Collection
,List
和ArrayList
。其他类型不起作用。
答案 3 :(得分:0)
why-define-a-java-object-using-interface-e-g-map-rather-than-implementation我希望这有助于您理解,为什么在初始化对象并将其存储到类型变量的引用时使用接口类型而不是具体实现。
答案 4 :(得分:-1)
使用ArrayList
(实现Collection
),您可以执行此操作。