使用流映射java 8转换另一个列表中的列表
我想使用stream和Java8中的另一个选项,基于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())));
然后,我想绘制地图并收集作为列表
# 1 楼答案
map
只应将每个FieldError
实例转换为ErroDto
实例使用
collect
将所有ErroDto
实例收集到List
中:# 2 楼答案
传递给
map()
方法的lambda表达式接受输入对象并返回输出对象。不应将其添加到map()
方法本身的列表中。将来自map()
的流收集到List<ErroDto>
: