Jacob:
Tengo una lista de objetos de claseA (campos, por ejemplo: ID, nombre, teléfono) y la necesidad de establecer cada uno de los campos en los que otra lista de objetos de ClassB (campos: studentID, StudentName y studentPhone). hay una manera sencilla en Java 8? Básicamente, es mi claseA DTO y ClassB es objeto DAO. Por ejemplo:
List<ClassA> list1 = new ArrayList<>();
list1.add(new ClassA(12,"John","1111111111"))
List<ClassB> list2 = new ArrayList<>();
aquí, quiero fijar cada elemento de claseA al objeto ClassB y añadir en lista2
oleg.cherednik:
Esto es bastante estándar. Se podría utilizar Stream
y map
método para modificar una instancia de ClassA
.
Asumir que:
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;
}
}
A continuación, el código podría tener este aspecto:
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());