java - 将 A 类对象的每个字段复制到列表中 B 类对象的每个字段

标签 java arraylist java-8

我有一个 ClassA 对象列表(字段例如:id、name、phone)并且需要将这些字段中的每一个设置到另一个 ClassB 对象列表(字段:studentId、studentName 和 studentPhone)中。 Java 8 中有简单的方法吗? 基本上,ClassA 是我的 DTO,ClassB 是 DAO 对象。 例如:

List<ClassA> list1 = new ArrayList<>();
list1.add(new ClassA(12,"John","1111111111"))
List<ClassB> list2 = new ArrayList<>();

在这里,我想将ClassA的每个元素设置为ClassB对象并添加到list2中

最佳答案

这是非常标准的。您可以使用 Streammap 方法来修改 ClassA 的实例。

假设:

public class ClassA {
    private final int id;
    private final String name;
    private final String phone;

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public String getPhone() {
        return phone;
    }
}

public class ClassB {
    private int studentId;
    private String studentName;
    private String studentPhone;

    public void setStudentId(int studentId) {
        this.studentId = studentId;
    }

    public void setStudentName(String studentName) {
        this.studentName = studentName;
    }

    public void setStudentPhone(String studentPhone) {
        this.studentPhone = studentPhone;
    }
}

那么您的代码可能如下所示:

List<ClassA> list1 = Collections.emptyList();
List<ClassB> list2 = list1.stream()
                          .map(a -> {
                              ClassB b = new ClassB();
                              b.setStudentId(a.getId());
                              b.setStudentName(a.getName());
                              b.setStudentPhone(a.getPhone());
                              return b;
                          })
                          .collect(Collectors.toList());

关于java - 将 A 类对象的每个字段复制到列表中 B 类对象的每个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54520849/

相关文章:

java - 如何在selenium框架中的不同类之间传递相同的浏览器实例

java - 如何在java中查找arraylist的重复对象

java - 在 Nashorn 中使用 WebSocket

Java Double Trouble - 如何在不使用 BigDecimal 的情况下确保 4.45 是 4.45?

java - 是否有可以从 Hudson/Jenkins 获取工件的 Ant 任务?

java - 这样初始化非静态成员变量会有问题吗?

java - Android - 从其他 Activity 检索 ArrayList

java - 如何在 Java 中从 ArrayList 中切出 ArrayList?

用于求解斐波那契的 Java 8 Lambda 表达式(非递归方式)

java - 方法引用的通用功能接口(interface)的方法签名