Java: создание объекта и добавление прямо в ArrayList - два способа - PullRequest
0 голосов
/ 21 апреля 2020

Возникли проблемы с некоторыми базовыми c концепциями создания объектов. В приведенном ниже коде я создаю объект [person], а затем добавляю его в массив [person]. Это работает нормально.

ArrayList<Person> persons = new ArrayList<>();
Person person = new Person(name, age);
persons.add(person);

Однако, если я пытаюсь сделать что-то вроде:

persons.add(Person person = new Person(name, age));

По какой-то причине это не работает.

С другой стороны , если я сделаю это:

        persons.add(new Person(name, age));

Это работает! Я думаю, что что-то не так с выполнением начальной части лица Person в моей неправильной попытке, вероятно, с объявлением объектов, но я не слишком уверен, что причина для того, чтобы не включать это, была бы?

1 Ответ

2 голосов
/ 21 апреля 2020
Person person = new Person(name, age);

является оператором (это не то, что вы можете использовать в качестве выражения, оно не возвращает никакого значения), в то время как

person = new Person(name, age)

является оператором выражения, который может использоваться для обоих присвоение и возврат значения

persons.add(person = new Person(name, age));

читать:

https://docs.oracle.com/javase/specs/jls/se13/html/jls-14.html#jls -14,5

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