java - 如何检索 ArrayList<Object> 中包含两个不同对象类型 arraylist 的值?

标签 java android object arraylist

我有两个类型 ArrayList<ObjectType1> 的 ArrayList和ArrayList<ObjectType2> .

然后我创建了另一个 ArrayList<Object>因为对象是每个对象类型的父类(super class)。

ArrayList<Object1> obj1 = new ArrayList<Object1>();

ArrayList<Object2> obj2 = new ArrayList<Object2>();

这两个对象类都有自己特定的 getter 和 setter 方法。

ArrayList<Object> obj3 = new ArrayList<Object>();


obj3.add(obj1);
obj3.add(obj2);

现在,当我访问 obj3 时,我想获取 obj1 和 obj2 的 getter 和 setter。??

任何人都可以帮忙解决吗..???

最佳答案

你可以做这些事情:

ArrayList<MyClass1> obj1 = new ArrayList<MyClass1>();
ArrayList<MyClass2> obj2 = new ArrayList<MyClass2>();

ArrayList<Object> obj3 = new ArrayList<Object>();

obj3.add(obj1); 
obj3.add(obj2);

for (int = 0 ; i < obj3.size() ; i++) {
    Object obj = obj3.get(i);
    if (obj instanceof MyClass1) {
        MyClass1 cls1 = (MyClass1)obj;
        cls1.get()..//You getters and setters
    }
    if (obj instanceof MyClass2) {
        MyClass2 cls2 = (MyClass2)obj;
        cls2.get()..//You getters and setters
    }
}

或者你可以做一些更聪明的事情并创建一个接口(interface)或抽象类/基类

public Interface Getable {
    void getAttrbiute();
}

不仅仅是在 MyClass1、MyClass2 中实现。 在这种情况下,您可以运行列表而不进行强制转换和 instaceof 检查

ArrayList<MyClass1> obj1 = new ArrayList<MyClass1>();
ArrayList<MyClass2> obj2 = new ArrayList<MyClass2>();

ArrayList<Getable> obj3 = new ArrayList<Getable>();

obj3.add(obj1); 
obj3.add(obj2);

for (int = 0 ; i < obj3.size() ; i++) {
   Getable objGetable = obj3.get(i);
   objGetable.getAttrbiute();
 }

希望有帮助..

关于java - 如何检索 ArrayList<Object> 中包含两个不同对象类型 arraylist 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23888289/

相关文章:

Javascript 将对象数组转换为 1 个数组

java - 如何使用 hibernate 工具生成带有注释的领域对象

java - 我想在单击 X(关闭按钮)时关闭框架

android - Firebase 验证码检查失败并阻止用户进行身份验证

android - 写入权限不起作用 - 范围存储 Android SDK 30(又名 Android 11)

android - 现有 gradle 项目中的 Git 子模块

javascript - 对象之间不重复代码的提示

Java:随机访问文件模式 "rws"与 "rwd"?

java - 时间用完时中断java中的递归

java - 调用一个方法从文件中读取数据