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

Java的Optional实现优雅判空新体验【最佳实践】

背景

在Java的开发中条件判断很常见,若全部使用if-else判断,维护起来似乎有点麻烦,本期记录使用Optional实现,方便备查。

一、创建对象

创建Optional对象,推荐使用【ofNullable】属性,支持泛型
若传递的值为 null,仍然会创建空的Optional对象

Order order = new Order();
Optional<Order> optional = Optional.ofNullable(order);

二、对象判空

对象判空可使用【isPresent】,判断对象是否包含非空值

if(optional.isPresent()){System.out.println("optional存在空值");
};

三、设置默认值

若某个属性为空,则可设置默认值,

方式一、直接赋值

可使用【orElse
当姓名name属性为空时,可指定返回【匿名用户】

String name = Optional.of(order).map(Order :: getName).orElse("匿名用户");

方式二、懒加载方式

可使用【orElseGet

String newName = Optional.of(order).map(Order :: getName).orElseGet(() -> {return "新用户";});

在这里插入图片描述

http://www.xdnf.cn/news/1397323.html

相关文章:

  • 【已解决】could not read Username for ‘https://x.x.x‘: No such device or address
  • 算法(③二叉树)
  • leetcode算法刷题的第二十二天
  • DVWA靶场通关笔记-文件包含(Impossible级别)
  • 数据治理进阶——解读数据治理体系基础知识【附全文阅读】
  • 【DreamCamera2】相机应用修改成横屏后常见问题解决方案
  • 用户态网络缓冲区设计
  • MQTT 连接建立与断开流程详解(二)
  • Vue3 + GeoScene 地图点击事件系统设计
  • 学习大模型,还有必要学习机器学习,深度学习和数学吗
  • DAEDAL:动态调整生成长度,让大语言模型推理效率提升30%的新方法
  • Oracle下载安装(学习版)
  • Nacos-3.0.3 适配PostgreSQL数据库
  • 基于Spring Boot小型超市管理系统的设计与实现(代码+数据库+LW)
  • 如何理解 nacos 1.x 版本的长轮询机制
  • 从咒语到意念:编程语言的世纪演进与人机交互的未来
  • Scala 2安装教程(Windows版)
  • Java网络编程与反射
  • SQLSugar 快速入门:从基础到实战查询与使用指南
  • 人工智能学习:Linux相关面试题
  • Golang 面试题「高级」
  • 美团8-30:编程题
  • Java Stream API并行流性能优化实践指南
  • 在线简历生成工具,免费好用
  • FOC开环控制代码解读
  • git在push和clone等操作时显示‘: Invalid argument
  • 50.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--新增功能--二期功能规划
  • 使用VBA嵌套字典快速统计生产流转信息
  • Pregel 与 LangGraph:从分布式图计算到现代 AI 智能体的架构演进与 API 深度解析
  • 设计模式:抽象工厂模式(Abstract Factory Pattern)