如何将Java中使用Stream和Lambda的代码转换为普通for-each循环?
改写后的非Lambda/Stream实现代码
以下是将原使用Stream和Lambda的参数校验异常处理代码,改为传统for-each循环实现的版本,功能完全一致:
@Override protected ResponseEntity<Object> handleMethodArgumentNotValid(MethodArgumentNotValidException ex, HttpHeaders headers, HttpStatus status, WebRequest request) { List<String> validationList = new ArrayList<>(); // 遍历所有字段错误,收集错误消息 for (FieldError fieldError : ex.getBindingResult().getFieldErrors()) { validationList.add(fieldError.getDefaultMessage()); } return new ResponseEntity<>(validationList, status); }
说明
- 手动初始化
ArrayList存储错误消息,替代原代码中Collectors.toList()的作用 - 使用普通for-each循环遍历
FieldErrors集合,逐个获取错误消息并添加到列表中,替代原stream().map(...)的逻辑
内容的提问来源于stack exchange,提问作者Hello world
相关产品推荐
相关产品推荐

