泛型:
jdk1.5出現的安全機制。
好處:
1,將運行時期的問題ClassCastException轉到了編譯時期。
2,避免了強制轉換的麻煩。
<>:什麼時候用?當操作的引用數據類型不確定的時候。就使用<>。將要操作的引用數據類型傳入即可.
其實<>就是一個用於接收具體引用數據類型的參數範圍。
在程序中,只要用到了帶有<>的類或者接口,就要明確傳入的具體引用數據類型 。
泛型技術是給編譯器使用的技術,用於編譯時期。確保了類型的安全。
運行時,會將泛型去掉,生成的class文件中是不帶泛型的,這個稱爲泛型的擦除。
爲什麼擦除呢?因爲爲了兼容運行的類加載器。
泛型的補償:在運行時,通過獲取元素的類型進行轉換動作。不用使用者在強制轉換了。
泛型的通配符:? 未知類型。
泛型的限定:
? extends E: 接收E類型或者E的子類型對象。上限
一般存儲對象的時候用。比如 添加元素 addAll.
? super E: 接收E類型或者E的父類型對象。 下限。
一般取出對象的時候用。比如比較器。