2013-08-29 114 views

回答

17

ArrayList<Object>專門Object小號而ArrayList<?>列表是(一個列表,它的具體類型,我們不確定這意味着除了null之外,我們無法添加任何內容)。當列表的類型不相關時,你可以使用後者。當您要執行的操作不取決於列表的類型時。例如:

public static boolean isBigEnough(ArrayList<?> list) { 
    return list.size() > 42; 
} 

這涵蓋的所有generics tutorial(見wildcards部分)。

最後,沒有類型參數的ArrayListraw type:它甚至允許的唯一原因是爲了向下兼容Java版本5以下,並且您應該儘可能避免使用它。

+1

這是一個新的視角:) –

+0

非常好。我在一些測試項目中使用了ArrayList(正如我在幾篇教程中看到的那樣)。外賣是,當你可以使用時總是使用 Chrips

1

ArrayList<?>裝置

ArrayList「含有一個類型要被確定的ArrayList實例」是類的ArrayList

一種ArrayList<Object>裝置的ArrayList含有Object類型的實例。

這看起來可能是在一個很好的寫了(甚至更多):http://docs.oracle.com/javase/tutorial/java/generics/types.html

+0

我想操作系統要求,因爲在JAVA中一切都從Object擴展而來,這意味着什麼是「要確定的類型」?因爲列表不接受原語 – Victor

相關問題