Optional 处理空指针
实际开发中经常会遇到判空需求的处理,通常我们可以采用if判断的形式:
ArrayList<String> nullAbleList = demoService.getList();
if(CollectionUtils.isEmpty(nullAbleList )){//new 一个ArrayList,避免下面业务逻辑空指针异常nullAbleList = new ArrayList();//或者直接抛出异常提示throw new RuntimeExcepton();
}
可以使用Optional链式的处理空值的可能:
//new 一个ArrayList,避免下面业务逻辑空指针异常
ArrayList<String> nullAbleList =Optional.ofNullable(demoService.getList()).orElseGet(ArrayList::new);
//或者直接抛出异常提示
ArrayList<String> nullAbleList =Optional.ofNullable(demoService.getList()).orElseThrow(()->new RuntimeExcepton());
//替换为另一个list,避免下面业务逻辑空指针异常
ArrayList<String> ortherList = new ArrayList<>();
ArrayList<String> nullAbleList =Optional.ofNullable(demoService.getList()).orElse(ortherList);
Optional 处理空指针相关推荐
- 【java新】Optional pk 空指针
空指针 Person person = people.find("John Smith"); person.doSomething(); 代码一 如果没有对person进行判空,那 ...
- optional 解决空指针_Java8新特性:Optional类的正确使用姿势
空指针异常是我们在实际开发中经常会遇到的问题,为了防止程序因为异常而中断,通常要在代码中添加大量的非空验证,例如一个释放 JDBC 相关资源的代码,如下所示. public static void r ...
- java8新特性(5)— Optional 类
java8新特性(5)- Optional 类 空指针解决方案 package com.common.jdk8;import java.util.Optional;//Optional 类是一个可以为 ...
- Java Optional容器判空处理
Java Optional容器判空处理 1. Java判空概述 2. Java判空方式 2.1 普通判空方式 2.2 Optional判空方式 1. Java判空概述 Java判空方式有很多多,可以i ...
- JAVA高级——Optional
JAVA高级--Optional 二.为何要避免null指针 三.使用Optional优化null判断 3.1.1 使用Optional优化Car类 3.1.2 Optional的几种模式 3.1.3 ...
- Java基础20:Java8新特性终极指南
更多内容请关注微信公众号[Java技术江湖] 这是一位阿里 Java 工程师的技术小站,作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux ...
- 还看不懂同事的代码?Lambda 表达式、函数接口了解一下
本文经授权转载自微信公众号:未读代码 Java 8 早已经在2014 年 3月 18日发布,毫无疑问 Java 8 对 Java 来说绝对算得上是一次重大版本更新,它包含了十多项语言.库.工具.JVM ...
- 2021-09-17
java8新特性Optional使用 一.简介 二.API 三.使用案列 一.简介 JAVA8 新特性 Optional 防止空指针的类 二.API /** 一.Optional 容器类:用于尽量避免 ...
- java太臃肿_Java简洁开发技巧,减少繁琐臃肿的代码
Java简洁开发技巧,减少繁琐臃肿的代码 Szx • 2020 年 12 月 09 日 消除if...else的方法 在项目实际开发中使用if...else判断的场景非常多,上面只是其中几种场景.下面 ...
最新文章
- 进程和线程你真的搞懂了吗?
- RedHat 7配置FTP服务
- -bash: jps: command not found
- vsCode 开发微信小程序插件
- 使用OnCtlColor函数消息打造背景
- python的read函数_Python Pandas pandas.read_sql函数方法的使用
- 【离散数学】基础理论归纳
- 合格架构师的目标管理
- 冒泡排序java代码_美团面试,我竟然输给了冒泡排序。。。
- R可视化分析美国的肥胖症,嘿!
- 编译器之词法分析器(Lexical Analyzer)
- 一名数据分析师的工作职责和需要掌握的基本知识
- java 调用gephi_Gephi可视化(一)——使用Gephi Toolkit创建Gephi应用
- linux查看目录是不是btrfs,btrfs文件系统常用命令使用
- python中的类和对象2
- 计算机模拟量与数字量的转换,PLC开关量与模拟量编程数值转换原理
- DVB-条件接收系统(CAS)
- Android实战(二)—— 房贷计算器
- CIDEr 评价指标
- WTL 绘制 圆角对话框 自绘对话框
热门文章
- php多线程 static变量,private static和public static的比较:多线程间
- 虚拟内存分页机制的页面置换
- redis stream学习总结
- C++11并发实战(专栏)
- 在MFC程序中增加控制台窗口
- 程序员要如何学英语?
- ElasticSearch6.x 7.x Elasticdump 在线安装、离线安装
- Spring Boot Serverless 实战系列“架构篇” 首发 | 光速入门函数计算
- 形式化验证工具TLA+:程序员视角的入门之道
- 双11还能创造什么新技术?