Optional使用记录

简介: Optional使用记录
List<BizGift>results=Optional.ofNullable(giftName)
      .map(name->bizGiftService.list(Wrappers.<BizGift>lambdaQuery().likeRight(BizGift::getGiftName, name)))
      .orElse(Lists.emptyList());

解释:


  • Lists.emptyList() :是Collections类的一个静态内部类,不能进行增删操作,返回一个不可变列表,此方式不需要创建对象 减少内存开销,并且返回一个size为0的list,不需要效验返回值为null。(emptySet()、emptyMap()方法同理)
  • Optional.ofNullable(giftName):判断giftName是否为null,不为null正常返回,为null时走orElse(Lists.emptyList())。
Optional.ofNullable(descs).ifPresent(s->orderItemList.addAll(Arrays.stream(s)
      .filter(sqlInjectPredicate())
      .map(OrderItem::desc).collect(Collectors.toList())));
  • .ifPresent() : 判断descs中是否有值,如果对象不是空的,就会执行传入的 Lambda 表达式。
  • .map() : 映射, 返回一个值
  • flatmap():映射,返回多个值
  • .filter():判断条件过滤,if(Object.getStatus()  != 0)等同于 Object.filter(a -> a.getStatus() != 0)
目录
相关文章
|
安全 Java 应用服务中间件
Nacos报错问题之鲲鹏上启动报错如何解决
Nacos是一个开源的、易于部署的动态服务发现、配置管理和服务管理平台,旨在帮助微服务架构下的应用进行快速配置更新和服务治理;在实际运用中,用户可能会遇到各种报错,本合集将常见的Nacos报错问题进行归纳和解答,以便使用者能够快速定位和解决这些问题。
软件工程——软件开发阶段(概要设计、详细设计)
需求分析确定了系统的开发目标,下一步工作就是软件设计。软件设计可以进一步地 分为两个阶段:总体设计和详细设计。确定系统的具体 实现方案、给出软件的模块结构、编写各个文档
|
设计模式 监控 Java
解析Spring Cloud中的断路器模式原理
解析Spring Cloud中的断路器模式原理
|
消息中间件 Cloud Native Dubbo
贡献 18 个议题,和我们来畅聊 CommunityOverCode Asia 2024
CommunityOverCode 是 Apache 软件基金会(ASF)的官方全球系列大会,其前身为 ApacheCon。今年,CommunityOverCode Asia 将于 7 月 26-28 日在杭州举办。届时,大会将展示 Apache 项目的最新突破,共同探讨 Apache 的运作生态、Apache 软件的商业模式、开源的法律问题以及其他许多主题的内容。
359 109
|
人工智能 Prometheus Cloud Native
新场景、新能力,AI-native 时代的可观测革新
借助 AI-native 可观测解决方案,阿里云为用户提供开箱即用的覆盖大模型应用、大模型到基础设施的全链路实时观测、告警与诊断能力,帮助企业在复杂的数字化转型过程中更有效地确保资源的高效利用与业务的持续成功。
735 132
|
7月前
|
机器学习/深度学习 算法 物联网
DeepSeek V3+R1满血微调工具上线!一键启动,硬件要求降10倍
DeepSeek V3+R1满血微调工具上线!一键启动,硬件要求降10倍
229 1
|
12月前
|
开发工具
关于 Markdown 的一些奇技淫巧
Markdown 基础语法之外的高级用法,让你的文档更出彩。
206 9
|
11月前
|
数据采集 缓存 测试技术
性能测试中,除了迭代次数,还有哪些因素会影响测试结果?
性能测试中,除了迭代次数,还有哪些因素会影响测试结果?
310 2
|
12月前
|
Web App开发 JavaScript 前端开发
鸿蒙Flutter实战:04-如何使用DevTools调试Webview
本文介绍如何在鸿蒙 Flutter 开发中调试 Webview,包括配置允许调试、找到 devtools 端口、开启端口转发、在 Chrome 中调试 Webview等。
384 0
鸿蒙Flutter实战:04-如何使用DevTools调试Webview
|
缓存 JavaScript 前端开发
三个小时vue3.x从零到实战(vue3.x面试总结)
该文章总结了Vue 3.x面试中常见的知识点和问题,包括Vue的生命周期、核心概念、组件通信方式等方面的内容,有助于准备Vue相关技术面试。
153 0