1. 程式人生 > >深入理解泛型之JAVA泛型的繼承和實現、泛型擦除

深入理解泛型之JAVA泛型的繼承和實現、泛型擦除

info 丟失 導致 bject object 反序列化 自己 inf 圖片

很多的基礎類設計會采用泛型模式,有些應用在使用的時候處於隔離考慮,會進行繼承,此時子類如何繼承泛型類就很講究了,有些情況下需要類型擦除,有些情況下不需要類型擦除,但是大多數情況下,我們需要的是保留父類的泛型特性。因為類型被擦除後,得到的對象會是Object,此時會導致編碼或反序列化失敗。如下所示:

技術分享圖片

如果子類也繼承父類的泛型化,則類型不會被擦除:

技術分享圖片

如果子類自己實現泛型化,把父類擦掉,也會丟失類型,如下:

技術分享圖片

因為泛型擦除是指:在繼承、實現或使用時沒有指定具體的類型,此時被擦除後的對象一律按照Object處理。

深入理解泛型之JAVA泛型的繼承和實現、泛型擦除