1. 程式人生 > >泛型可能引起的錯誤

泛型可能引起的錯誤

元素 In 簡單的 原始類型 list 輸出 但是 字符 對象

1.

當把一個原始類型的變量(如List變量list1,假設存入幾個字符串)賦給帶泛型信息的變量(如List<Integer>list2)時,會有一個潛在的問題:jvm會把集合中盛裝的所有元素都當成Integer來處理,如果只是簡單的遍歷輸出可能沒有問題,但如果需要對元素進行操作,比如把list2的第一個元素賦值給一個integer變量時,此時編譯沒有問題,但運行時則會報錯(類型轉換錯誤)

2.

原始類型帶來的擦除當把一個具有泛型信息的對象賦值給另外一個沒有反省信息的變量時,所有在尖括號之間的泛型信息都將被丟棄。記住:是所有的不僅僅是這個對象的泛型信息,還有對象內部屬性的泛型信息都會被擦除。

3.

jdk雖然支持泛型,但是不允許創建泛型數組!

泛型可能引起的錯誤