如何在Java中将通用对象添加到列表中?

时间:2019-04-01 13:52:25

标签: java generics collections

如何在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);
    }
} 

3 个答案:

答案 0 :(得分:3)

您可以使自己的类通用:

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

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

答案 1 :(得分:1)

您可以使两个类Object1Object2都实现相同的接口'ObjInterface'

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

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

答案 2 :(得分:1)

如果您希望该类仅包含Object1或Object2,并且不包含其他任何内容,则可以结合使用其他两个答案:

<a href="#" id="play">play</a>

并将db添加到Object1和Object2的定义中。

如果将两个类共有的方法添加到cached_db,则可以在user.session_set.all().delete() 中的django-qsessions对象上调用这些方法,因为它们肯定是{{ 1}}。