爲什麼編譯器不會產生任何錯誤?在JLS中,我可以瞭解這種情況?使用泛型類時沒有錯誤,而沒有定義類型
class Main {
public static void main(String[] args) {
A a = new A();
List<Integer> list = a.getStrings();
}
static class A<X> {
public List<String> getStrings() {
return new ArrayList<String>();
}
}
}
此代碼執行(沒有錯誤)或只編譯? – Dennis
我最近看到了這個問題。基本上,在不使用類型參數的情況下使用'A'的時候,編譯器就好像'A'中沒有使用泛型一樣。這是一個向後兼容的東西。 –
您正在使用原始'A'類,這對向後兼容性沒有錯誤 –