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

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

綁定到類型擴展 T<E> 的 Java 泛型類

綁定到類型擴展 T<E> 的 Java 泛型類

慕無忌1623718 2021-12-30 20:49:58
我有一個通用的測試類,它在它測試的集合(在我的例子中是堆棧)類型上是通用的。將泛型類型的名稱設為S(對于 Stack)。我有一個接口IStack<E>,我想要求S實現IStack<E>. 當我將類聲明為 時 class Test<S extends IStack> { ... },會收到警告:IStack 是原始類型,References ... 應該被參數化。class Test<S<E> extends IStack<E>> 導致語法錯誤標記 '<', 上的語法錯誤,預期在 Java 中聲明這種綁定的正確方法是什么?
查看完整描述

2 回答

?
瀟湘沐

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

我認為您需要兩個通用參數,一個用于元素,另一個用于堆棧類型,即

class Test<E,S extends IStack<E>>

(或E extends SomeAncestorOfYourElements如果需要)


查看完整回答
反對 回復 2021-12-30
?
蝴蝶不菲

TA貢獻1810條經驗 獲得超4個贊

class Test<S extends IStack>使用原始類型IStack,沒有內部內容的編譯時信息IStack

您可以做的事情很少,這完全取決于您的設計:

  • class Test<S extends IStack<?>> 允許任何元素類型 IStack

  • class Test<E, S extends IStack<E>>綁定IStack到特定的E元素類型

  • class Test<S extends IStack<S>> 迷惑所有人


查看完整回答
反對 回復 2021-12-30
  • 2 回答
  • 0 關注
  • 200 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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