java中泛型插除的問題

Java 的泛型擦除和運行時泛型信息獲取 - 編程語言 - ITeye資訊

如:

list<interger> list1= new ArrayList<Integer>();

list<String > list2= new ArrayList<String>();

syso;list1==list2 ? ? ? ?true


如:Map?map?=?new?HashMap()?{}; ?//定義類的方式獲取數據

Type?type?=?map.getClass().getGenericSuperclass(); ?

ParameterizedType?parameterizedType?=?ParameterizedType.class.cast(type);??

for?(Type?typeArgument?:?parameterizedType.getActualTypeArguments())?{??

????System.out.println(typeArgument.getTypeName());??

}?

原因是: 編譯時編譯器會把泛型數據插除,避免過多的類被創建消耗性能

而需要用到泛型中的參數時可通過定義類的方式獲取數據(序列和反序列)

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容