java - 如何从 Java 中的对象 ArrayList 获取 ArrayList 值?

标签 java android object arraylist arrayobject

我有一个对象ArrayList。我已将一些对象和 StringArrayList 添加到此 ArrayList。我可以轻松地从中获取对象值。现在我的问题是如何从中获取 String 的整个 ArrayList

代码 fragment :

Person.java

public class Person {

    private String name;
    private int number;

    public Learn(String name, int number) {
        this.name = name;
        this.number= number;
    }

    public String getName() {
        return name;
    }

    public int getNumber() {
        return number;
    }
}

现在我已经定义了对象列表

List<Object> itemsList = new ArrayList<>();

现在是时候在 itemsList 中添加一些Person

public void addPerson(){
    itemsList.add(new Person("Alex", 0000062846));
    itemsList.add(new Person("Jack", 0000131332));
    itemsList.add(new Person("Anjela", 0000053715));
    itemsList.add(new Person("Brian", 0000085015));
}

现在,我将在索引 2 处添加一个 String List

public void addList(){
    List<String> strList = new ArrayList<>();
    strList.add("Hello");
    strList.add("How");
    strList.add("are");
    strList.add("you?");

    itemsList.add(2, strList);
}

好的,是时候从 itemsList 中获取值了

Person person = (Person) itemsList.get(0);
System.out.println(person.getName);  // Alex

现在我的问题是:如何从 itemsList 获取 strList

最佳答案

使用 instanceof为此,使用 instanceof找到 Object输入 List<Object>

for(Object obj : itemsList) {

    if(obj instanceof List) {    //if it is List type then type cast it

          List<String> str = (List<String>) obj;
          for(String s : str) {

             System.out.println(s);

                  }
          }
    }

但是根据评论中的讨论,假设你有 List<String>List<Integers>List<Object> itemsList然后 while 在类型转换时将抛出异常,因为在运行时 List<String>List<Integers>两者都被视为 `List

List<String> str = (List<String>) obj;    //exception thrown at this line

看看Type Erasure , 所以对每种类型使用通用列表而不是 `List to add different types

关于java - 如何从 Java 中的对象 ArrayList 获取 ArrayList 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55122302/

相关文章:

java - JTable:获取单元格内的对象位置

android - 异步任务与内容提供者。访问SQLite数据库要用什么?

javascript - 如何将对象存储到数组中,然后在创建按钮元素中显示所有对象?

javascript - 从 onload 事件调用对象函数会使其失去上下文

java - 有没有办法确定Java类中的方法是否已被覆盖

java - 如何将 Facelet 包装在 <p :ajax> element 中

java - 如何为单个 Spring Boot 应用程序创建两个日志文件

android - OpenGL ES2 : Vertex Indices and Texture coordinates?

android - Android 上的应用内屏幕录制每秒捕获 15 帧

java - 我可以在声明对象的同时创建对象的实例吗?