除了添加註釋之外,有沒有辦法在return語句中正確解決關於將Boolean
轉換爲K
的警告?我正在實例化Foo<Boolean, Integer>
,所以K
是和Integer
當實例方法foo()
被執行時,是否正確?爲什麼泛型類型不能傳播到所有的類方法?
public class Foo<K, V> {
public static void main(String[] args) {
(new Foo<Boolean, Integer>()).foo();
}
public K foo() {
return (K) Boolean.FALSE;
}
}
編輯:所以,有人建議,我結束了重構代碼,現在一切都燦爛。
如果你提供了一個String類型的參數呢? '(String)Boolean'如何工作? –
在運行時'ClassCastException'有什麼問題? – revolt
它打破了每一個良好的實踐編程概念。 –