首页 > 解决方案 > Java:创建对象并直接添加到 ArrayList - 两种方式

问题描述

对创建对象的一些基本概念有一些麻烦。在下面的代码中,我创建了一个 [person] 对象,然后将其添加到 [persons] 数组列表中。它工作正常。

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 初始部分有问题,可能与声明对象有关,但我不太确定不包括它的原因是什么?

标签: javaoopobject

解决方案


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


推荐阅读