有人能解釋一下ArrayList<?>
,ArrayList
和ArrayList<Object>
是什麼區別,什麼時候使用每個?它們都是相同的還是每個在執行級別都有不同的含義?ArrayList <?>,ArrayList,ArrayList <Object>有什麼區別?
回答
ArrayList<Object>
是專門的Object
小號而ArrayList<?>
列表是(一個列表,它的具體類型,我們不確定這意味着除了null
之外,我們無法添加任何內容)。當列表的類型不相關時,你可以使用後者。當您要執行的操作不取決於列表的類型時。例如:
public static boolean isBigEnough(ArrayList<?> list) {
return list.size() > 42;
}
這涵蓋的所有generics tutorial(見wildcards部分)。
最後,沒有類型參數的ArrayList
是raw type:它甚至允許的唯一原因是爲了向下兼容Java版本5以下,並且您應該儘可能避免使用它。
這是一個新的視角:) –
非常好。我在一些測試項目中使用了ArrayList(正如我在幾篇教程中看到的那樣)。外賣是,當你可以使用時總是使用
ArrayList<?>
裝置
ArrayList
「含有一個類型要被確定的ArrayList
實例」是類的ArrayList
一種ArrayList<Object>
裝置的ArrayList
含有Object
類型的實例。
這看起來可能是在一個很好的寫了(甚至更多):http://docs.oracle.com/javase/tutorial/java/generics/types.html
我想操作系統要求,因爲在JAVA中一切都從Object擴展而來,這意味着什麼是「要確定的類型」?因爲列表不接受原語 – Victor
- 1. ArrayList <Integer> a [];有什麼區別?和ArrayList <Integer> a ;?
- 2. ArrayList <Object <ArrayList <Object> >>
- 3. ArrayList <String>和ArrayList <>之間的區別?
- 4. ArrayList <>()和ArrayList <>(){}之間的區別
- 5. 爲什麼我們寫ArrayList <ArrayList <Integer>> list = new ArrayList <>();
- 6. ArrayList <ArrayList <String>> vs ArrayList <Object>
- 7. 轉換ArrayList <ArrayList <String>>「返回」ArrayList <String>
- 8. ArrayList <ArrayList <Integer>> IndexOutOfBoundsException
- 9. ArrayList <> vs ArrayList <Integer>
- 10. ArrayList的問題<ArrayList <String>>
- 11. ArrayList的用法<ArrayList<E>>
- 12. MalformedParameterizedTypeException當使用ArrayList <ArrayList<>>
- 13. Transpose ArrayList <ArrayList <String>> in Java
- 14. Java將ArrayList <Integer>添加到ArrayList <ArrayList <Integer>>替換ArrayList的ArrayList的所有元素
- 15. 列表<String> stringList = new ArrayList <String>()和列表<String> stringList = new ArrayList()是什麼區別?
- 16. 如何將ArrayList <Object>轉換爲ArrayList <String>或ArrayList <Timestamp>?
- 17. 如何聲明HashMap <String,ArrayList <ArrayList <String> >>?
- 18. Java的可迭代<Iterable<T>>到ArrayList的<ArrayList<T>>
- 19. static Hashtable <Leader,ArrayList <Integer>> assignedLeader = new Hashtable <Leader,ArrayList <Integer>>(20);
- 20. ArrayList <String> toString()
- 21. ArrayList中<String>
- 22. <identifier> expected,arrayList
- 23. ArrayList <Post> android
- 24. ArrayList <String> NullPointerException
- 25. ArrayList <Object> JSON
- 26. JAVA的ArrayList <Arraylist>的深拷貝
- 27. 新ArrayList <String>()和新ArrayList()
- 28. ArrayList的ArrayList列表<integer>
- 29. 有什麼用的List <NameValuePair>或ArrayList <NameValuePair>
- 30. 查找ArrayList <Point>的所有排列並將它們放入新的ArrayList中<ArrayList <Point>>
閱讀'Java Generics'的時間 – anubhava
反正我通常不會放任何參數......它的「假」泛型。 – texasbruce
@texasbruce這真是一個壞主意。 – arshajii