当前位置:首页 > JAVA > 正文内容

使用Optional类处理Java多层空指针判断问题

高老师2年前 (2024-01-17)JAVA450
在php中拥有null合并运算符 ?? 可以解决我们大量的冗余代码,少写很多isset,那么在java中有没有比较好的null判断处理方案呢?是的,有呢。从 Java 8 引入的一个很有趣的特性是 Optional 类。Optional 类主要解决的问题是臭名昭著的空指针异常(NullPointerException)。
先看看我的代码:
long wid = weimobOrderResp.getOrderInfo().getBuyerInfo().getWid()
很明显可能存在空指针问题,如果需要判断需要每层加个if判断,如果使用Optional代码可以简化为:
long wid = Optional.ofNullable(weimobOrderResp.getOrderInfo())
        
.map(WeimobShopOrderInfoResponse::getBuyerInfo)
        
.map(WeimobShopOrderBuyerInfo::getWid)
        
.orElse(0L)
我们不需要加3层if判断,并且给了默认值0,代码也好看很多。

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/703.html

分享给朋友:

“使用Optional类处理Java多层空指针判断问题” 的相关文章

Java不用编译直接执行

Java不用编译直接执行

public class test {     public static void main(String[] args) {     &...

java限制1个方法同一时间只能被一个线程访问

java限制1个方法同一时间只能被一个线程访问

java限制1个方法同一时间只能被一个线程访问public synchronized void setOrderPay(){ }加上synchronized 修饰符即可...

java增强型for循环

java增强型for循环

Java5 引入了一种主要用于数组的增强型 for 循环,类似js中的for inpublic class Member {     public static void main(String[]&...

java String 类 ,java 字符串类,java创建字符串,java获取字符串长度,java连接字符串,java格式化字符串

java String 类 ,java 字符串类,java创建字符串,java获取字符串长度,java连接字符串,java格式化字符串

在java中字符串属于对象,刚开始我就疑惑为什么int char等类型都是小写,结果String是大写,java太反人类,后来才知道String是对象。(1).java创建字符串String text = "net"; String tex...

java匹配一个字符串在另外一个字符串中出现的次数,java正则start,java正则end

java匹配一个字符串在另外一个字符串中出现的次数,java正则start,java正则end

java匹配一个字符串在另外一个字符串中出现的次数,java正则start,java正则end// 正则 String pattern = "\\bgao\\b"; // 字符串 String content ...

java正则appendReplacement方法和java正则appendTail

java正则appendReplacement方法和java正则appendTail

假如有个字符串为"fatcatfatcatfat",正则为“cat”当调用appendReplacement(sb, "dog")时appendReplacement方法都会把匹配到的内容替换为dog,并把匹配到字符串的前面几个字符串+dog送给sb里,所以第...