0
A
回答
5
是的,但如果您嘗試訪問非節點元素就好像它是節點一樣,您將得到類轉換異常。泛型在(for)運行時被丟棄。
例如:
import java.util.*;
import java.awt.Rectangle;
public class test {
public static void main(String args[]) {
List<Rectangle> list = new ArrayList<Rectangle>();
/* Evil hack */
List lst = (List)list;
/* Works */
lst.add("Test");
/* Works, and prints "Test" */
for(Object o: lst) {
System.err.println(o);
}
/* Dies horribly due to implicitly casting "Test" to a Rectangle */
for(Rectangle r: list) {
System.err.println(r);
}
}
}
1
鑑於:
List<Node> nodelist = new ArrayList<Node>();
Object toAdd = new Object();
然後:
((List) nodelist).add(toAdd);
或
((List<Object>) nodelist).add(toAdd);
會做黑客。伊克。我覺得很骯髒。但是,你不應該這樣做。如果你真的需要混合類型,那麼這樣做:
List<Object> mixedList = new ArrayList<Object>(list);
mixedList.add(toAdd);
這一解決辦法,至少,會顯示給他人,他們必須提防對象的任何子類可以在列表中。
0
假設您使用泛型來創建ArrayList,您可以使用反射將非節點添加到它中,因爲在運行時不會保留類型信息。
取決於如何將對象從ArrayList中取出,您可能會遇到ClassCastException。
如果你真的對ArrayList中的非特定類型有需求,那麼爲什麼不使用它就沒有Generic?
相關問題
- 1. C#中的ArrayList是否可以包含各種類型的對象?
- 2. 節點是否可以包含與同一端節點的關係集合?
- 3. 是否可以選擇一個只包含子節點子集的節點?
- 4. 斯卡拉字節類型可以包含-128但不是128
- 5. 'anyURI'的xsd類型是否可以包含空格?
- 6. typedef是否可以包含size_t的簽名類型?
- 7. 是否可以在Node-Red流中編輯配置節點?
- 8. 是否可以進行類型安全的節點式回調?
- 9. 果園 - 表單是否可以包含許多內容類型?
- 10. 我可以包含非Symfony類嗎?
- 11. 確定以下兄弟節點是否包含具有相同值的節點
- 12. 解析Java的樹狀結構,而節點可以包含ArrayList中的
- 13. XSLT測試XML節點是否包含另一個XML節點?
- 14. xsl檢查根節點是否包含任何子節點
- 15. 是否可以爲圖表js添加包含文本的小節點?
- 16. 在vCard 3.0中包含GENDER類型是否「非法」?
- 17. 在DDD中,包含列表的類可以是值類型嗎?
- 18. java arraylist在對象上包含類型
- 19. 函數構造函數是否可以包含非此變量?
- 20. 標量類型是否包含類類型的指針?
- 21. 檢查列表是否包含類型?
- 22. 是否可以在cpselect圖像上包含情節線?
- 23. 檢查arraylist是否只包含空值
- 24. 檢查java arraylist是否包含對象
- 25. 在步驟定義類中包含非步驟方法是否可以接受?
- 26. 是否可以更改包含CLA的要點URL?
- 27. 是否可以選擇包含模型中的字段?
- 28. 檢查兩個arraylist是否包含一個類似的組件
- 29. PARAM-VALUE是否可以包含空格?
- 30. 服務是否可以包含活動?