为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

四季花海 2022-09-14 15:31:34
如何在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 回答

?
皈依舞

TA贡献1851条经验 获得超3个赞

您可以使自己的类泛型:


public class MyClass<T> {

    private List<T> myList = new ArrayList<>();


    public void addList(T o) {

        myList.add(o);

    }


查看完整回答
反对 回复 2022-09-14
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

如果希望类仅包含 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<>();

并添加到对象 1 和对象 2 的定义中。implements ObjInterface


如果将两个类共有的方法添加到 中,则可以在 中的对象上调用这些方法,因为它们保证是 的子类。ObjInterfaceTMyClassObjInterface


查看完整回答
反对 回复 2022-09-14
?
富国沪深

TA贡献1790条经验 获得超9个赞

您可以创建这两个类并实现相同的接口“Obj接口”Object1Object2


public class MyClass {

    private List<ObjInterface> myList = new ArrayList<>();


    public void addList(ObjInterface o) {

        myList.add(o);

    }

}


查看完整回答
反对 回复 2022-09-14
  • 3 回答
  • 0 关注
  • 197 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信