是否可以创建多个对象的列表,这些对象采用多个参数?

Chr*_*s A 1 java

简化的例子

假设我将一个人定义为:

public class Person (String name, int age)
Run Code Online (Sandbox Code Playgroud)

然后我有一个人的清单...

public class ListOfPeople {
     private ArrayList<Person> people;
}
Run Code Online (Sandbox Code Playgroud)

然后我希望能够一次性创建几个人,做类似的事情...

ListOfPeople myFriends = new ListOfPeople("Chris",33,"Adam",26,"John",50)
Run Code Online (Sandbox Code Playgroud)

我知道我可以分别初始化每个对象,然后添加它们,我很好奇我是否可以通过上面的方式“即时”创建它们

And*_*cus 5

您可以执行以下操作:

List<Person> personListConstructor(String... data) {
    List<Person> personList = new ArrayList<>();
    for (int i = 0; i < data.length / 2; i++) {
        personList.add(new Person(data[2 * i], Integer.parseInt(data[2 * i + 1])));
    }
    return personList;
}
Run Code Online (Sandbox Code Playgroud)

当然,它缺乏验证-必须有偶数个参数,每秒必须是整数。其他解决方案是使用的数组Object

List<Person> personListConstructor(Object... data) {
    List<Person> personList = new ArrayList<>();
    for (int i = 0; i < data.length / 2; i++) {
        personList.add(new Person((String) data[2 * i], (Integer) data[2 * i + 1]));
    }
    return personList;
}
Run Code Online (Sandbox Code Playgroud)

同样的注意事项。