java - 如何在 lambda 表达式中从另一个对象设置一个对象
问题描述
我从数据库中获取了一个经理列表,现在我必须将此列表的每个对象填充到另一个对象,即员工,并将其作为列表(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;
}}
组件Impl.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());
推荐阅读
- shell - VSCode 集成终端参数:当前文件名
- python - 将字母列表转换为数字列表
- python - 自定义 CNN mini-batch (Keras, TF) 以避免在训练/测试中重复测量
- assembly - ARM STR 到 .data 中的变量
- javascript - 平移 z 维度时,纹理从平面网格中消失
- linux - IntelliJ 在 Linux 上显示“Haxe SDK 没有有效的根”
- asp.net-core-2.1 - DotNet Core 身份 - 它不记得用户
- arrays - 在 groovy 中创建地图的汇总列表
- r - 在 R 中使用具有不同宽度的列的数据框时出现问题
- javascript - 如何在函数中保存全局变量值?