導航:首頁 > 編程語言 > java泛型extends

java泛型extends

發布時間:2025-01-21 19:53:19

java 泛型。為什麼List < extends Number> list 只能添加null

這個java中的通配符「上界」「下界」有關。
上界<? extends Number>規定:只能取(get),不能添加(add)。
下界<? super Number>規定:不能取(get),只能添加(add)。
現在試想一下你的例子,List<? extends Number> list = new ArrayList<>()
Java中是強類型的,就是說任何變數在具體使用時,必須明確類型。上述list在定義時,表述其中的每一項值都是Number本身或者是其子類,但是在add時(list.add( new Long(1) ) 看似沒錯),但編譯器它卻不知道這個list到底放的是啥類型,有可能是ArrayList<Short>,ArrayList<Test> 等,因為不確定所以就不允許你add一個long或者short。
從這個list定義中,在獲取值時,編譯器知道的是裡面放的是Number類型或者是其子類型值,因此Number n = (Number)list.get(0), Long l = (Long)list.get(0)可以編譯通過。

閱讀全文

與java泛型extends相關的資料

熱點內容
氣動隔膜式壓縮機 瀏覽:470
linux如何修改主機名 瀏覽:104
單片機游標上下移動 瀏覽:526
數據加密驗證 瀏覽:106
程序員被激怒 瀏覽:891
winxp找不到伺服器dns地址 瀏覽:842
以文本文件的格式保存考生文件夾 瀏覽:41
編譯原理文法分為幾類 瀏覽:568
JAVA基礎學python要多久 瀏覽:74
java流量控制 瀏覽:934
java實現多重繼承 瀏覽:705
票據通加密狗怎麼在新系統上使用 瀏覽:793
航模加密狗連接電腦 瀏覽:473
好用的匯編語言編譯器 瀏覽:863
自己編譯安卓虛擬機 瀏覽:911
中國的古代演算法 瀏覽:656
上層怎麼看程序員 瀏覽:25
程序員便當排骨 瀏覽:855
如何禁用安卓全家桶 瀏覽:261
oa伺服器異常怎麼辦 瀏覽:73