基本上我有以下代码:

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());

09-16 06:49