首页 > 解决方案 > 从对象内的列表中检索值

问题描述

我正在尝试从位于另一个对象的 ArrayList 中的对象中检索一个值。

基本结构是:

+++++

书籍对象->作者对象列表- >作者对象->作者名字变量

+++++

我想访问给定书籍的第一作者名字

+++++

我创建了一个“书”类,如下所示:

public class Book {

private String mTitle;

private List<Author> mAuthors;

public Book(String title, List<Author> authors) {
    this.mTitle = title;
    this.mAuthors = authors;
}

public String getmTitle() {
    return mTitle;
}

public List<Author> getmAuthors() {
    return mAuthors;
}
}

此类还包含Author-Objects 列表

public class Author {

private String mFirstName;
private String mLastName;

public Author(String firstName, String lastName) {
    this.mFirstName = firstName;
    this.mLastName = lastName;
}

public String getmFirstName() {
    return mFirstName;
}

public String getmLastName() {
    return mLastName;
}
}

然后我在MainActivity中创建一个Author 实例列表:

 ArrayList<Author> authors = new ArrayList<>();

    authors.add(new Author("Hans", "Schwabe"));

并在创建图书实例时使用此列表

Book buch = new Book("Säulen der Erde",authors);

然后,当我尝试访问列表中第一个作者的姓名时,我使用以下代码:

List<Author> authorArrayList = new ArrayList<Author>();
authorArrayList = buch.getmAuthors();
authorArrayList.get(1).getmFirstName();

而此时我的应用程序不断崩溃

**

因此:从列表中检索第一作者的名字的正确方法是什么?

**

标签: androidlistobjectnested

解决方案


问题是您有 1 个作者,并且您正试图从索引 1 中检索它。索引应该是 0。编程中的索引从 0 开始。

如果你写

authorArrayList.get(0).getmFirstName();

它应该工作


推荐阅读