dil*_*ent 3 collections java-8 java-stream
在java8之前我们编写如下代码:
List<ResultDTO> resources = Lists.newArrayList();
List<Product> productList = details.getProducts();
for (Product product : productList) {
ResultDTO result = new ResultDTO();
result.setName(product.getName);
result.setNumber(product.getNumber);
resources.add(resourceDetail);
}
Run Code Online (Sandbox Code Playgroud)
和Java8我这样写:
List<ResultDTO> resources = Lists.newArrayList();
details.getProducts.stream().forEach( product -> {
ResultDTO result = new ResultDTO();
result.setName(product.getName);
result.setNumber(product.getNumber);
resources.add(resourceDetail);
} );
Run Code Online (Sandbox Code Playgroud)
我想知道当我们遍历流创建ResultDTO对象设置其属性然后到列表时是否有一些提示?
提前致谢.
在流操作中创建列表并对其进行修改是一种反模式.您应该让流为您创建列表:
List<ResultDTO> resources =
details.getProducts()
.stream()
.map(this::createResultDTO)
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
createResultDTO方法将从Product创建ResultDTO(您当然可以在map中内联其代码,但它的可读性更低).
| 归档时间: |
|
| 查看次数: |
202 次 |
| 最近记录: |