Java擦除和轉換實例分析
本文實例講述了Java擦除和轉換。分享給大家供大家參考,具體如下:
一 點睛
在嚴格的泛型代碼里,帶泛型聲明的類總應該帶著類型參數(shù)。但為了與老的Java代碼保持一致,也允許在使用帶泛型聲明的類時不指定類型參數(shù)。如果沒有為這個泛型類指定類型參數(shù),則該類型參數(shù)被稱作一個raw type(原始類型),默認是該聲明該參數(shù)時指定的第一個上限類型。
當把一個具有泛型信息的對象賦給另一個沒有泛型信息的變量時,則所有在尖括號之間的類型信息都被扔掉了。比如說一個List<String>
類型被轉換為List,則該List對集合元素的類型檢查變成了成類型變量的上限(即Object),這種情況被為擦除。
二 實戰(zhàn)——擦除
class Apple<T extends Number> { T size; public Apple() { } public Apple(T size) { this.size = size; } public void setSize(T size) { this.size = size; } public T getSize() { return this.size; } } public class ErasureTest { public static void main(String[] args) { Apple<Integer> a = new Apple<>(6); // ① // a的getSize方法返回Integer對象 Integer as = a.getSize(); // 把a對象賦給Apple變量,丟失尖括號里的類型信息 Apple b = a; // ② // b只知道size的類型是Number Number size1 = b.getSize(); // 下面代碼引起編譯錯誤 //Integer size2 = b.getSize(); // ③ } }
三 實戰(zhàn)——擦除與轉換
import java.util.*; public class ErasureTest2 { public static void main(String[] args) { List<Integer> li = new ArrayList<>(); li.add(6); li.add(9); List list = li; // 下面代碼引起“未經(jīng)檢查的轉換”的警告,編譯、運行時完全正常 List<String> ls = list; // ① // 但只要訪問ls里的元素,如下面代碼將引起運行時異常。 //System.out.println(ls.get(0)); } }
更多java相關內容感興趣的讀者可查看本站專題:《Java面向對象程序設計入門與進階教程》、《Java數(shù)據(jù)結構與算法教程》、《Java操作DOM節(jié)點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設計有所幫助。
相關文章
SpringBoot定制JSON響應數(shù)據(jù)返回的示例代碼
@JsonView 是 Jackson 庫中的一個注解,它允許你定義哪些屬性應該被序列化到 JSON 中,基于不同的“視圖”或“配置”,在本文中,通過了解@JsonView,你將能夠更好地掌握如何在Spring Boot應用中定制JSON數(shù)據(jù)的輸出,需要的朋友可以參考下2024-05-05SMBMS超市訂單管理系統(tǒng)的網(wǎng)站源碼
這篇文章主要介紹了SMBMS超市訂單管理系統(tǒng),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-05-05java使用MulticastSocket實現(xiàn)基于廣播的多人聊天室
這篇文章主要為大家詳細介紹了java使用MulticastSocket實現(xiàn)基于廣播的多人聊天室,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-01-01java實現(xiàn)批量下載 多文件打包成zip格式下載
這篇文章主要為大家詳細介紹了java實現(xiàn)批量下載、將多文件打包成zip格式下載,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-07-07java實現(xiàn)基于TCP協(xié)議網(wǎng)絡socket編程(C/S通信)
這篇文章主要介紹了java實現(xiàn)基于TCP協(xié)議網(wǎng)絡socket編程(C/S通信),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-10-10