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

呼喚遠方
TA貢獻1856條經驗 獲得超11個贊
當你實現一個泛型接口時,你應該總是指定類型參數。您可以不指定它們而逃脫,但是您正在使用原始類型,而您不應該使用原始類型。
當你做指定它們,你還需要一個有效的方式來指定。
第一個選項是錯誤的,原因有兩個:
當你指定類型參數時,你永遠不會重寫那個參數的邊界,所以寫K extends Comparable<K>是錯誤的
K并且V沒有在任何地方定義。
第二個選項是錯誤的,因為您重寫了K. 在第一選擇此選項的不同K和V 在這里定義-K并且V是的類型參數Son。
第三個選項編譯,但它使用原始類型,這首先違背了使用泛型的目的。
理想情況下,您會編寫如下內容:
class Son<K extends Comparable<K>, V> implements Father<K, V> {
}
注意:我怎么沒改寫界限,定義K和V作為類型參數Son。
或者,指定一個具體類型:
class Son implements Father<String, Integer> {
}
添加回答
舉報
0/150
提交
取消