当前位置: 首页 > article >正文

for循环 jdk8 stream Api写法

List tmsWafCpDataVos = in.getFormDataList();
tmsWafCpDataVos.stream()
.map(TmsWafCpDataVo::getDbcIndexStandard)
.filter(dbcIndexStandard->isEmpty(dbcIndexStandard))
.findFirst()
.ifPresent(dbcIndexStandard->{throw new BizException(“位置编号为空、请输入查询条件!”);});

List traceChipDtoVos = in.getFormDataList();
for(TmsWafCpDataVo vo : traceChipDtoVos){
if(isEmpty(vo.getTraceCode())){
throw new BizException(“圈层不能为空、请输入圈层查找条件!”);
}
}

你可以使用 Java 8 的 Stream API 改写为以下形式:

Java
List<TmsWafCpDataVo> traceChipDtoVos = in.getFormDataList();

traceChipDtoVos.stream()
    .filter(vo -> isEmpty(vo.getTraceCode()))
    .findAny()
    .ifPresent(vo -> { throw new BizException("圈层不能为空、请输入圈层查找条件!"); });
或者更简洁的版本(推荐):

Java
List<TmsWafCpDataVo> traceChipDtoVos = in.getFormDataList();

traceChipDtoVos.stream()
    .map(TmsWafCpDataVo::getTraceCode)
    .filter(traceCode -> isEmpty(traceCode))
    .findFirst()
    .ifPresent(traceCode -> { throw new BizException("圈层不能为空、请输入圈层查找条件!"); });
代码解析:

stream():将集合转换为流
map():提取需要验证的字段(traceCode)
filter():保留需要触发异常的无效字段
findFirst():找到第一个无效元素(短路操作,提升性能)
ifPresent():如果有无效元素则抛出异常
优势:

函数式编程风格,更简洁直观
使用短路操作(findFirst/findAny)提升性能
链式调用更易读
自动处理空集合情况(不会报错)
注意:确保 isEmpty() 方法能正确处理空值(null-safe),或改用:

Java
.filter(traceCode -> traceCode == null || traceCode.isEmpty())

http://www.kler.cn/a/597715.html

相关文章:

  • 爬虫逆向解决debugger问题
  • 社区医疗管理系统基于Spring Boot SSM
  • xss复现
  • 常见CMS漏洞之二:DeDeCMS
  • GGUF 和 llama.cpp 是什么关系
  • 用 pytorch 从零开始创建大语言模型(六):对分类进行微调
  • [leetcode]1263. 推箱子(A*+优先队列BFS+DFS)
  • 基于Redis分布锁+事务补偿解决数据不一致性问题
  • 游戏引擎学习第173天
  • MySQL 安全传输
  • 【leetcode hot 100 131】分割回文串
  • 2025-03-21 学习记录--C/C++-PTA 练习7-7 矩阵运算
  • 稳定运行的以Oracle NoSQL数据库为数据源和目标的ETL性能变差时提高性能方法和步骤
  • k8s主要控制器简述(二)DaemonSet|Job|CronJob
  • OpenCV图像拼接(5)用于计算一组图像的特征点和描述符的函数computeImageFeatures()
  • 数据结构之基本队列-顺序结构实现-初始化-判断队列是否为空(front=rear)-出队-入队-队尾满了,调整队列-获取队头元素
  • Redis原理--持久化
  • EasyRTC嵌入式音视频通信SDK:WebRTC技术下的硬件与软件协同演进,开启通信新时代
  • 2025-03-22 学习记录--C/C++-C 库函数 - getchar()
  • Java 方法执行原理底层解析