簡體   English   中英

如何將特定對象添加到列表中

[英]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>();

這可能嗎? 如果是,請向我解釋。

如果StringEmployee擴展相同的類型,則只能執行此操作。 例如,假設StringEmployee擴展了Type ,那么您可以執行以下操作:

List<? extends Type> list = new ArrayList<? extends Type>()

但是...我要假設String指的是java.lang.String如果是這種情況(可能是這樣),那么沒有以下內容就無法做到這一點,我相信對於您的特定用例而言太籠統了:

List<? extends Object> list = new ArrayList<? extends Object>()

您可以嘗試創建一個包含EmployeeString的容器對象,然后創建該類型的列表,但這可能最終與維護兩個並行列表一樣痛苦。

您可以通過將列表包裝在一個自定義類中來實現此目的,該類可以指示可以添加哪些類型。 例如:

    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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM