2014-11-05 132 views
0

如果我宣佈一個新的列表如下:Java列表默認實現?

List<String> listExample = someFunction(); 

將使用哪種列表界面的實現?

編輯:感謝迄今答案。什麼被認爲是乾淨的方式來做到這一點,我應該總是用新的聲明?

+8

這完全取決於什麼'someFunction()'回報。 – Eran 2014-11-05 06:23:41

+2

調用'listExample'上的'getClass()'並找出。 – 2014-11-05 06:25:47

回答

4

至於葉蘭評論說,完全取決於什麼someFunction();回報。無論ArrayList<E>和LinkedList實現List接口。

你可以試試,

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

找出哪些已經落實。從docs

public final Class<?> getClass() 

返回運行此對象的類。返回類對象是 ,其由 表示類的靜態同步方法被鎖定的對象。

0

例如如果u給 列表listExample =新的ArrayList(); 然後,將爲ArrayList創建對象,並且列表只是listExample的一個實例。

,您可以使用的getClass()來listExample查看

+0

我想你回答的問題不是他所問的。 – ajb 2014-11-05 06:26:24

1

不管你正在構建例如鏈表,ArrayList中,向量,棧和someFunction()返回將listexample實施。如果您使用的是List接口引用,它有一個好處,您可以爲其分配任何類型的對象(LinkedList,ArrayList,Vector,Stack)。