基本上我有以下代码:
List<Object[]> tes = new ArrayList<>();
Object[] ar1 = {"John","Cena","2347867686"};
Object[] ar2 = {"Peter","Smith","978787878"};
tes.add(ar1);
tes.add(ar2);
我有以下PersonDto类,如下所示:
public class PersonDto {
String name;
String surname;
String phone;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSurname() {
return surname;
}
public void setSurname(String surname) {
this.surname = surname;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
}
那就是我正在尝试的:
for (Object[] object : tes) {
TestDto testDto = new TestDto();
for (Object object2 : object) {
System.out.println(object2);
}
System.out.println("second");
}
但是我不知道何时在for循环中设置姓,名或电话。
所以基本上,我试图将每个数组从列表中映射到PersonDto,如下所示:
因此,预期结果将是:
第一人称(PersonDto)的姓名设置为John,姓氏设置为Cena,
电话设置为2347867686。
第二个人(PersonDto)的姓名设置为Peter,姓氏设置为Smith
和电话设置为978787878。
列表中可以有许多数组,并且每个数组将始终具有三个属性(名称,姓氏,电话)。
最佳答案
如果您的PersonDto
具有构造函数,那将容易得多:
PersonDto(String name, String surname, String phone) {
this.name = name;
this.surname = surname;
this.phone = phone;
}
然后,只需调用它:
List<PersonDTO> =
objets.stream()
.map(arr -> new PersonDTO((String) arr[0], (String) arr[1], (String) arr[2]))
.collect(Collector.toList());