我想使用stream和Java 8中的另一个选项基于基于FieldError的列表创建ErroDto列表。我在forEach中有此功能,但我想在stream和map中使用:
fieldErrors.stream()
.forEach(e -> errosDto.add(new ErroDto(e.getField(), e.getDefaultMessage())));
我在下面尝试这样,但是我认为它是错误的,因为我正在修改地图中的第二个列表:
fieldErrors.stream()
.map(e -> errosDto.add(new ErroDto(e.getField(), e.getDefaultMessage())));
然后,我想映射并收集为列表。
最佳答案
map
仅应将每个FieldError
实例转换为一个ErroDto
实例。
使用collect
将所有ErroDto
实例收集到List
中:
List<ErroDto> errosDto =
fieldErrors.stream()
.map(e -> new ErroDto(e.getField(), e.getDefaultMessage()))
.collect(Collectors.toList());