1. 程式人生 > >建議採用的順序是 List、List、List

建議採用的順序是 List、List、List

List<T>、List<?>、List<Object>這三者都可以容納所有的物件,但使用的順序應該是首選List<T>,次之List<?>,最後選擇List<Object>,原因如下:

(1) List<T>是確定的某一個型別

List<T>表示的是List集合中的元素都為T型別,具體型別在執行期決定;List<?>表示 的是任意型別,與List<T>類似,而List<Object>則表示List集合中的所有元素為Object類 型,因為Object是所有類的父類,所以LiS

t<Object>也可以容納所有的類型別,從這一字面 意義上分析,List<T>更符合習慣:編碼者知道它是某一個型別,只是在執行期才確定而已。

(2) List<T>可以進行讀寫操作

List<T>可以進行諸如add、remove等操作,因為它的型別是固定的T型別,在編碼期 不需要進行任何的轉型操作。

List<?>是隻讀型別的,不能進行增加、修改操作,因為編譯器不知道List中容納的是 什麼型別的元素,也就無畢校驗型別是否安全了,而且List<?>讀取出的元素都是Object類 型的,需要主動轉型,所以它經常用於泛型方法的返回值。注意,List<?>雖然無法增加、修 改元素,但是卻可以刪除元素,比如執行remove、clear等方法,那是因為它的刪除動作與泛型型別無關