亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java.lang.reflect.WildcardType 類為什么會返回上界和下界的數組?

java.lang.reflect.WildcardType 類為什么會返回上界和下界的數組?

墨色風雨 2021-10-20 16:26:58
最近,我閱讀了很多關于 Java 泛型的文章,因為我要開始一個項目,該項目在很大程度上依賴于這些機制和允許訪問它們的公共反射 API。但在我看來,這些有點矛盾:請注意,通配符只能有一個界限。In 既不能有上限也不能有下限,也不能有多個上限或下限。諸如“? super Long extends Number”或“? extends Comparable & Cloneable”之類的結構是非法的。(http://www.angelikalanger.com/GenericsFAQ/FAQSections/TypeArguments.html#FAQ102;通配符邊界部分)因此,通配符始終只有一個邊界(如果您忽略每個下界通配符的上限“對象”)。但是,如果您查看相應的反射 API 類WildcardType,似乎這不是全部事實:為什么API只提供的功能getLowerBounds()和getUpperBounds()為什么它們返回數組?是否有任何場景,其中將返回長度至少為 2 的數組?
查看完整描述

1 回答

?
慕碼人8056858

TA貢獻1803條經驗 獲得超6個贊

我目前可用的來源(1.8.0_172)包含這個“內部”評論:


// one or many? Up to language spec; currently only one, but this API

// allows for generalization.

因此,該 API 似乎是為將來可能允許多個邊界的情況而設計的。


編輯:


這是 1.8.0_181 來源的鏈接,顯示此評論仍然存在。(這是 OpenJDK 10.0.2 的相同鏈接)


為什么即使不需要這種概括?假設您稍后更改 api,并且所有現有代碼都需要更改Type為Type[]我們您需要添加新方法,這使得很難解釋為什么有兩種方法。


查看完整回答
反對 回復 2021-10-20
  • 1 回答
  • 0 關注
  • 149 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號