我正在尝试从位于ArrayList内的对象检索值 在另一个对象中。
基本结构是:
+++++
书对象-> 作者对象的列表-> 作者对象->作者的名字变量 < / p>
+++++
我想访问给定书的第一作者的名字
+++++
我创建了一个“图书”类,该类如下所示:
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;
}
}
此类还包含一个作者对象列表:
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();
此时,我的应用崩溃了。
**
因此:检索名称的正确方法是什么 名单上的第一作者?
**
答案 0 :(得分:1)
问题是您有1位作者,并且正尝试从索引1中检索它。索引应为0。编程中的索引从0开始。
如果你写
authorArrayList.get(0).getmFirstName();
应该可以