簡體   English   中英

我如何在語法上正確地實現具有類型的接口<K extends Comparable<K> ,V&gt;?

[英]How do I syntaxcially correctly implement an interface with type<K extends Comparable<K>, V>?

在此處輸入圖片說明

K 和 V 保證是字符串或整數。 我已經多次使用泛型,但從來沒有<K extends Comparable<K>, V> ,所以我現在很掙扎。

當你實現一個泛型接口時,你應該總是指定類型參數。 您可以不指定它們,但是您使用的是原始類型, 而您不應該使用原始類型。

指定它們,你還需要一個有效的方式來指定。

由於兩個原因,第一個選項是錯誤的:

  • 當您指定類型參數時,您永遠不會重寫該參數的邊界,因此編寫K extends Comparable<K>是錯誤的
  • KV沒有在任何地方定義。

第二個選項是錯誤的,因為您重寫了K的邊界。 在第一選擇此選項不同KV這里定義- KV是類型參數Son

第三個選項編譯,但它使用原始類型,這首先違背了使用泛型的目的。

理想情況下,您會編寫如下內容:

class Son<K extends Comparable<K>, V> implements Father<K, V> {

}

請注意我沒有重寫邊界,並將KV定義為Son的類型參數。

或者,指定一個具體類型:

class Son implements Father<String, Integer> {

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM