簡體   English   中英

如何在Java中將通用對象添加到列表中?

[英]How to add generic object to list in java?

如何在Java中將通用對象添加到列表中?

目前,我有兩個類執行相同的功能,並希望將它們集成在一起

public class MyClass1 {
    private List<Object1> myList = new ArrayList<>();

    public void addList(Object1 o) {
        myList.add(o);
    }
} 

public class MyClass2 {
    private List<Object2> myList = new ArrayList<>();

    public void addList(Object2 o) {
        myList.add(o);
}
} 

就像是

public class MyClass {
    private List<Object> myList = new ArrayList<>();

    public void addList(Object o) {
        myList.add(o);
    }
} 

您可以使自己的類通用:

public class MyClass<T> {
    private List<T> myList = new ArrayList<>();

    public void addList(T o) {
        myList.add(o);
    }
} 

您可以使Object1Object2兩個類Object1實現相同的接口'ObjInterface'

public class MyClass {
    private List<ObjInterface> myList = new ArrayList<>();

    public void addList(ObjInterface o) {
        myList.add(o);
    }
}

如果您希望該類僅包含Object1或Object2,並且不包含其他任何內容,則可以結合使用其他兩個答案:

interface ObjInterface {
    // may be empty
}

public class MyClass<T extends ObjInterface> {
    private List<T> myList = new ArrayList<>();

    public void addList(T o) {
        myList.add(o);
    }
}

MyClass<Object1> object1only = new MyClass<>();
MyClass<Object2> object2only = new MyClass<>();

並將implements ObjInterface添加到Object1和Object2的定義。

如果將這兩個類ObjInterface方法添加到ObjInterface ,則可以在MyClassT對象上調用這些方法,因為可以ObjInterface它們是ObjInterface的子類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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