導航:首頁 > 編程語言 > 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相關的資料

熱點內容
centosjava環境變數配置 瀏覽:552
伺服器主板被鎖如何恢復 瀏覽:129
xpc語言編程軟體 瀏覽:820
光遇安卓怎麼解限制 瀏覽:300
元氣騎士老版源碼 瀏覽:102
助眠解壓音頻小姐姐口腔音 瀏覽:232
sql加密身份證號解碼 瀏覽:161
解壓玩法視頻 瀏覽:464
蘋果xls如何設置加密 瀏覽:206
湖北廣電dns的伺服器地址是多少 瀏覽:527
php獲取原始數據 瀏覽:250
pic單片機如何編程 瀏覽:895
javabyte寫文件 瀏覽:325
java獲取類包名 瀏覽:894
ftp命令編碼格式 瀏覽:300
程序員那麼可愛陸離穿正裝 瀏覽:171
源碼的賬號密碼在哪個文件 瀏覽:443
如何在中國農業銀行app綁定銀行卡 瀏覽:996
shopnum1多用戶商城系統源碼 瀏覽:750
紅包廣告平台源碼 瀏覽:776