例子:誤區類返回實例從Java中的子類的實例稱爲類的通用方法
interface S {}
interface SS extends S {}
abstract class A<T extends S> {
T get() {…}
}
abstract class B<BT extends SS> extends A<BT> {}
爲什麼((B)someInstanceOfB).get()
返回S
類型的對象(我們應該把它轉換爲手動SS
)時,編譯器可以確定返回的對象至少是SS
?
編譯器爲什麼不讓隱式類轉換爲更清晰的代碼?代碼版本爲1.5+,這對編譯器來說不是祕密。 (解決)
更新:爲什麼不編譯器來編譯B
類,因爲它隱含有方法BT get() { return super.get(); }
?
這個問題在Java 1.7+中解決了嗎?
我不明白這個問題。但'S'和'SS'是這裏的接口。 – midhunhk
@silverback修改後的問題。接口有什麼問題? –