Получить значения из списка в объекте - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь получить значение из объекта, который находится внутри 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;
}
}

Затем я создаю l список экземпляров Author в MainActivity:

 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 Ответ

0 голосов
/ 10 января 2019

Проблема в том, что у вас есть 1 автор, и вы пытаетесь извлечь его из индекса 1. Индекс должен быть 0. Индексирование в программировании начинается с 0.

Если вы напишите

authorArrayList.get (0) .getmFirstName ();

Должно работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...