我想使用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());

07-26 06:32