作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在从 DB 获取经理列表,现在我必须将此列表的每个对象填充到另一个对象,即员工,并将其作为列表 (employeeList) 返回给它的调用函数。 Manager 和 Employee 都包含相同的字段。我必须使用流使用 lambda 表达式来实现这一点。
员工.java
public class Employee {
private String name;
private String designation;
private String active;
public String getActive() {
return active;
}
public void setActive(String active) {
this.active = active;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDesignation() {
return designation;
}
public void setDesignation(String designation) {
this.designation = designation;
}}
管理器.java
public class Manager {
private String name;
private String designation;
private String active;
public String getActive() {
return active;
}
public void setActive(String active) {
this.active = active;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDesignation() {
return designation;
}
public void setDesignation(String designation) {
this.designation = designation;
}}
ComponentImpl.java
public class ComponentImpl {
public List<Employee> catchAllEmployess () {
List<Manager> managers = DbOperation.collectManagers(2);
List<Employee> employees = new ArrayList<>();
for (Manager manager : managers) {
Employee employee = new Employee();
employee.setName(manager.getName());
employee.setDesignation(manager.getDesignation());
employee.setActive(manager.getActive());
employees.add(employee);
}
return employees;
}
最佳答案
您可以通过在 Employee 类中包含一个构造函数来简化表达式
Employee(String name, String designation, String active) {
this.name = name;
this.designation = designation;
this.active = active;
}
然后可以用作
List<Employee> employees = managers.stream()
.map(manager -> new Employee(manager.getName(), manager.getDesignation(), manager.getActive()))
.collect(Collectors.toList());
关于java - 如何在 lambda 表达式中从另一个对象设置一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52792518/
我是一名优秀的程序员,十分优秀!