package pkg_2;
import java.util.*;
class shape{}
class Rect extends shape{}
class circle extends shape{}
class ShadeRect extends Rect{}
public class OnTheRun {
public static void main(String[] args) throws Throwable {
ShadeRect sr = new ShadeRect();
List<? extends shape> list = new LinkedList<ShadeRect>();
list.add(0,sr);
}
}
1
A
回答
6
你不能爲List<? extends X>.
的add
添加任何東西不能被允許的,因爲你不知道的組件類型。考慮以下情況:
List<? extends Number> a = new LinkedList<Integer>();
a.add(1); // in this case it would be okay
a = new LinkedList<Double>();
a.add(1); // in this case it would not be okay
對於List<? extends X>
你只能出去的對象,但不能添加。 相反,對於List<? super X>
,您只能添加對象,但不能將它們取出(您可以獲取它們,但只能作爲Object,而不能作爲X)。
此限制修復了陣列以下問題(你在哪裏讓這些「不安全」受讓人):
Number[] a = new Integer[1];
a[0] = 1; // okay
a = new Double[1];
a[0] = 1; // runtime error
至於你的程序,你可能只想說List<shape>
。您可以將所有形狀的子類放入該列表中。
ShadeRect sr = new ShadeRect();
List<shape> list = new LinkedList<shape>();
list.add(0,sr);
+0
謝謝,優秀的答案..... – MineIsMine 2010-10-13 06:08:49
+0
+1 - 尼斯的解釋。 – 2010-10-13 06:19:24
相關問題
- 1. 如何重載LinkedList的add方法?
- 2. 用fileinfo獲取MIME類型,是大文件的好方法嗎?
- 3. 主類中的每個方法都必須是靜態的嗎?
- 4. 「一切都是對象」是好事嗎?
- 5. 處理相同動作的多個事件類型是不好的做法嗎?
- 6. 超載你的主要方法是不好的做法嗎?
- 7. 在jQuery和css中都使用類是不好的做法嗎?
- 8. 這是不好的做法嗎?對於超載通用接口的方法和返回不同類型
- 9. 每個人都是放置加載圖像的好地方嗎?
- 10. 如何從超類方法而不是超類類型返回子類型
- 11. 爲多個事件類型使用相同的事件偵聽器回調是不好的做法嗎?
- 12. 每個文件的php對象都是好主意嗎?
- 13. LinkedList(custom)add()return NullPointerException
- 14. 這是識別JavaScript對象類型的好方法嗎?
- 15. 訂閱C#擴展方法中的事件是不好的做法嗎?
- 16. 在每種方法中初始化一個新套接字是件好事嗎?
- 17. Express req.body爲空。這是做這件事的最好方法嗎?
- 18. 這是做這件事的最好方法嗎?
- 19. 這是處理Java事件的好方法嗎?
- 20. 這是收集點擊事件的好方法嗎?
- 21. 類方法對於類的每個實例都有不同的代碼嗎?
- 22. 爲什麼不是每種方法都是靜態方法?
- 23. 所有JPA實體類方法都不是最終的嗎?
- 24. 關於LinkedList中ListIterator的add()方法的困惑
- 25. 編寫大量類型別名是不好的做法嗎?
- 26. TextView不顯示。但是,當logcat中顯示的每件事情都很好
- 27. PropertyChanged事件測試:這是一個好方法嗎?
- 28. Java事件:這是一個好方法嗎?
- 29. Python中的無類方法對任何事都有用嗎?
- 30. Applet錯誤:類型Container中的方法add(String,Component)不適用
那麼,你在這裏問什麼? – zigdon 2010-10-13 05:48:41
小寫的類名稱不完全正確。 – Thilo 2010-10-13 05:50:03
編譯器抱怨最後一行並告訴我錯誤我不能理解它 – MineIsMine 2010-10-13 05:51:02