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

    }


四季花海
浏览 198回答 3
3回答

皈依舞

您可以使自己的类泛型:public class MyClass<T> {&nbsp; &nbsp; private List<T> myList = new ArrayList<>();&nbsp; &nbsp; public void addList(T o) {&nbsp; &nbsp; &nbsp; &nbsp; myList.add(o);&nbsp; &nbsp; }}&nbsp;

凤凰求蛊

如果希望类仅包含 Object1 或 Object2,而不包含任何其他内容,则可以组合其他两个答案:interface ObjInterface {&nbsp; &nbsp; // may be empty}public class MyClass<T extends ObjInterface> {&nbsp; &nbsp; private List<T> myList = new ArrayList<>();&nbsp; &nbsp; public void addList(T o) {&nbsp; &nbsp; &nbsp; &nbsp; myList.add(o);&nbsp; &nbsp; }}MyClass<Object1> object1only = new MyClass<>();MyClass<Object2> object2only = new MyClass<>();并添加到对象 1 和对象 2 的定义中。implements ObjInterface如果将两个类共有的方法添加到 中,则可以在 中的对象上调用这些方法,因为它们保证是 的子类。ObjInterfaceTMyClassObjInterface

富国沪深

您可以创建这两个类并实现相同的接口“Obj接口”Object1Object2public class MyClass {&nbsp; &nbsp; private List<ObjInterface> myList = new ArrayList<>();&nbsp; &nbsp; public void addList(ObjInterface o) {&nbsp; &nbsp; &nbsp; &nbsp; myList.add(o);&nbsp; &nbsp; }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java