productionPlanDto.getDetails().stream().map(i -> { ProductionPlanDetail productionPlanDetail= new ProductionPlanDetail(); productionPlanDetail.setId(i.getId()); productionPlanDetail.setCode(i.getCode()); productionPlanDetail.setName(i.getName()); productionPlanDetail.setSpec(i.getSpec()); productionPlanDetail.setYfQty(i.getYfQty()); productionPlanDetail.setSfQty(i.getSfQty()); productionPlanDetail.setQlQty(i.getQlQty()); productionPlanDetail.setRemark(i.getRemark()); productionPlanDetail.setVersions(i.getVersions()); productionPlanDetail.setPId(i.getPId()); return productionPlanDetail; });
时间: 2024-02-19 14:01:29 浏览: 22
这段代码是在对一个名为 productionPlanDto 的对象中的 details 属性进行处理,将其转换成一个由 ProductionPlanDetail 对象组成的 Stream。在转换过程中,对每个 ProductionPlanDetail 对象的属性进行赋值操作,最终返回一个包含所有转换后的 ProductionPlanDetail 对象的 Stream。
相关问题
var s= productionPlanDto.getDetails().stream().map(i -> { ProductionPlanDetail productionPlanDetail= new ProductionPlanDetail(); productionPlanDetail.setId(i.getId()); productionPlanDetail.setCode(i.getCode()); productionPlanDetail.setName(i.getName()); productionPlanDetail.setSpec(i.getSpec()); productionPlanDetail.setYfQty(i.getYfQty()); productionPlanDetail.setSfQty(i.getSfQty()); productionPlanDetail.setQlQty(i.getQlQty()); productionPlanDetail.setRemark(i.getRemark()); productionPlanDetail.setVersions(i.getVersions()); productionPlanDetail.setPId(i.getPId()); return productionPlanDetail; }).toList(); 优化这段代码
可以将 `toList()` 替换为 `collect(Collectors.toList())`,并使用方法引用来优化赋值操作,具体代码如下:
```
List<ProductionPlanDetail> s = productionPlanDto.getDetails().stream()
.map(ProductionPlanDetail::new)
.collect(Collectors.toList());
```
其中,`ProductionPlanDetail::new` 表示使用 `ProductionPlanDetail` 的构造函数来创建一个新的对象,并将当前元素作为参数传入。这样就可以避免手动对每个属性进行赋值操作,代码更加简洁和清晰。同时,使用 `collect(Collectors.toList())` 可以将 Stream 转换成 List。
阅读全文