android - 从对象内的列表中检索值
问题描述
我正在尝试从位于另一个对象的 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();
而此时我的应用程序不断崩溃。
**
因此:从列表中检索第一作者的名字的正确方法是什么?
**
解决方案
问题是您有 1 个作者,并且您正试图从索引 1 中检索它。索引应该是 0。编程中的索引从 0 开始。
如果你写
authorArrayList.get(0).getmFirstName();
它应该工作
推荐阅读
- javascript - 如何在 ionic 中使用 FreeOCR API?
- python - 如何通过python验证http响应,并添加到列表中?
- c++ - 在带有自定义比较器的 std::map 中使用自定义类时 -> 错误:静态断言失败
- google-sheets - 有条件的行和列之间的求和
- css - 如何使用 CSS 重新创建 Disney Plus / Netflix 封面图片?
- python - 如何避免选项菜单中出现大量 if 和 elif
- c - 我需要帮助将“相机”移动到 OpenGL 中的隧道上
- javascript - 条件渲染的问题
- python - 使用 python Beautiful Soup 在源代码中抓取有关 iXBRL 链接的信息
- java - 往返 Netezza 的 Azure Synapse 数据库 - 最有效的方法