1
Q
泛型通配符混亂
A
回答
3
由於Class類別爲final
,所以<? extends Class>
僅適用於Class
類型。
因此,Container<Class>
和Container<? extends Class>
之間沒有功能差異。
更新:如果您的問題涉及到什麼是通配符?如果我們假設我們不是在談論Class
,但其他一些(可擴展)類型,這裏的區別:
比方說,我們有兩大類:
class Shape
class Rectangle extends Shape
請考慮以下方法簽名:
public void addRectangle(List<? extends Shape> shapes)
這是有界通配符的示例,其中Shape
部分稱爲upper bound
。
public void addRectangle(List<? extends Shape> shapes) {
// Compile-time error!
shapes.add(0, new Rectangle());
}
的原因編譯時錯誤是第二參數,以shapes.add()
類型是? extends Shape
,其在人類語言意味着形狀的一個未知的亞型。由於我們不知道它是什麼類型,我們不知道它是否是超類型Rectangle
。它可能也可能不是這樣的超類型,所以在那裏通過Rectangle
是不安全的。
的例子取自:
相關問題
- 1. Java泛型混亂
- 2. 通配符泛型
- 3. 通配符泛型
- 4. 另一個Java泛型混亂
- 5. 混亂與Java泛型和子類
- 6. 甲泛型混亂:欺騙編譯
- 7. 泛型和通配符
- 8. Java泛型和通配符
- 9. Java泛型通配符
- 10. Java泛型 - 通配符
- 11. Java泛型:通配符
- 12. Java泛型通配符
- 13. java泛型和通配符
- 14. Java泛型:通配符
- 15. 泛型通配符再次。
- 16. 通配符類型的泛型
- 17. 雙通配符泛型類型錯誤
- 18. SML型混亂
- 19. URL配置混亂
- 20. 泛型通配符不能轉換爲泛型
- 21. Java:通配符/泛型的問題
- 22. 上下界通配符的Java泛型
- 23. 泛型與上下文到通配符
- 24. 上的Java泛型約束通配符
- 25. Java泛型插入的通配符
- 26. 泛型通配符的正確使用
- 27. java通配符中的泛型
- 28. (?)通配符泛型的不規則性
- 29. 泛型集合和通配符的Java
- 30. java泛型中的通配符
假設類不是最終的,然後呢? 如果東西繼承形式類不能它仍然在容器? –
whomaniac
閱讀我的更新。 –