Java列表默认实现?

时间:2014-11-05 06:23:02

标签: java arraylist

如果我声明一个这样的新列表:

List<String> listExample = someFunction();

将使用哪个列表接口实现?

编辑:感谢您的回答。什么被认为是干净的方式,我应该总是用新的声明列表?

3 个答案:

答案 0 :(得分:4)

正如Eran评论的那样,完全取决于someFunction();返回的内容。ArrayList<E>和LinkedList实现了List接口。

你可以尝试,

System.out.println("" + listExample.getClass());

找出已实施的内容。来自docs

public final Class<?> getClass()
  

返回此Object的运行时类。返回的Class对象是   由静态同步方法锁定的对象   代表班级。

答案 1 :(得分:1)

无论你在建设什么,例如LinkedList,ArrayList,Vector,Stack in和someFunction()的返回将使用listexample实现。如果您使用List接口引用,它有一个好处,您可以为其分配任何类型的对象(LinkedList,ArrayList,Vector,Stack)。

答案 2 :(得分:0)

例如,如果你给 List listExample = new ArrayList(); 然后将为ArrayList创建Object,list只是listExample的一个实例。

你可以使用getClass()来查看该列表的例子