假设我将一个人定义为:
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)
我知道我可以分别初始化每个对象,然后添加它们,我很好奇我是否可以通过上面的方式“即时”创建它们
您可以执行以下操作:
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)
同样的注意事项。
| 归档时间: |
|
| 查看次数: |
83 次 |
| 最近记录: |