业精于勤,荒于嬉;行成于思,毁于随。
是固定的,代表T或T的父類。
Java定義泛型的初衷是為了確保在執行時出現的錯誤能提早放到編譯時檢查,有了這個理解,再看 extends T>和 super T>。 super T>叫做向下造型,在這裡代表Comparable介面中的泛型元素都是T或T的父類,在傳入參數時可以傳入T或T的子類別。 extends T>叫做向上造型,以ArrayList extends T>為例,代表這個list集合中所有元素都是T的子類,在取出時可以自動轉換為T型。
講的有點拗口,其實沒有多複雜,敲一敲就理解了。
如果你想從一個數據類型裡獲取數據,使用? extends 通配符;如果你想把對象寫入一個數據結構裡,使用? super 通配符;如果你既想存,又想取,那就別用通配符。
是固定的,代表T或T的父類。
Java定義泛型的初衷是為了確保在執行時出現的錯誤能提早放到編譯時檢查,有了這個理解,再看 extends T>和 super T>。
super T>叫做向下造型,在這裡代表Comparable介面中的泛型元素都是T或T的父類,在傳入參數時可以傳入T或T的子類別。
extends T>叫做向上造型,以ArrayList extends T>為例,代表這個list集合中所有元素都是T的子類,在取出時可以自動轉換為T型。
講的有點拗口,其實沒有多複雜,敲一敲就理解了。
如果你想從一個數據類型裡獲取數據,使用? extends 通配符;
如果你想把對象寫入一個數據結構裡,使用? super 通配符;
如果你既想存,又想取,那就別用通配符。