Java泛型和泛型接口

泛型的好處就是:
 適用於多種數據類型執行相同的代碼
 泛型中的類型在使用時指定,不需要強制類型轉換

限定類型變量


靜態域不可引用T變量 因爲靜態域先於構造方法執行


// super規定了參數的下限 只能接受蘋果、水果上類(類本身 或者是超類纔可以)
public void print(GenericTye<? super Apple> p){
}
但是Set寫入數據的時候 只能寫入紅富士蘋果、煙臺蘋果。。。(類型本身和子類類型)

// extends規定了參數的上限 只能接受紅富士蘋果、煙臺蘋果。。。(子類)
public void print(GenericTye<? extends Apple> p){
}
但是get讀取數據的時候 返回下界及本身(類本身及子類類型)
總結:“上界不存,下界不取”
綜上,我們就知道 “上界不存,下界不取” 的真實含義其實就是:
都是出於 安全考慮,

“?extends X” 主要用於安全地訪問數據。它只用來讀數據,不用來存放數據。
? super X 主要用於安全地寫入數據。它只用來寫入數據,不用來取出數據。
詳細鏈接可參考:https://www.codenong.com/js2f103e6ad4e6/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章