[英]How can I add specific objects into List
我想將特定元素添加到ArrayList。 我可以這樣做:
List<Employee> list = new ArrayList<Employee>();
List<String> list = new ArrayList<String>();
但是,我想創建一個新列表,其中包含Employee或String對象,而不包含其他任何內容:
// This is
List<String or Employee> list = new ArrayList<String or Employee>();
這可能嗎? 如果是,請向我解釋。
如果String
和Employee
擴展相同的類型,則只能執行此操作。 例如,假設String
和Employee
擴展了Type
,那么您可以執行以下操作:
List<? extends Type> list = new ArrayList<? extends Type>()
但是...我要假設String
指的是java.lang.String
如果是這種情況(可能是這樣),那么沒有以下內容就無法做到這一點,我相信對於您的特定用例而言太籠統了:
List<? extends Object> list = new ArrayList<? extends Object>()
您可以嘗試創建一個包含Employee
和String
的容器對象,然后創建該類型的列表,但這可能最終與維護兩個並行列表一樣痛苦。
您可以通過將列表包裝在一個自定義類中來實現此目的,該類可以指示可以添加哪些類型。 例如:
public class EmployeeList {
private List<Object> backingList = new ArrayList<Object>();
public Object get(int i) {
return backingList.get(i);
}
public boolean add(String s) {
return backingList.add(s);
}
public boolean add(Employee e) {
return backingList.add(e);
}
}
這是不可能的。 一個可以做:
List<? extends Object> list = new ArrayList<? extends Object>()
可以容納任何一種類型的東西。 要么
List<Object> list = new ArrayList<Object>()
它將容納一切。 您已經編寫了可以自己完成的代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.