实际开发中经常会遇到判空需求的处理,通常我们可以采用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 处理空指针相关推荐

  1. 【java新】Optional pk 空指针

    空指针 Person person = people.find("John Smith"); person.doSomething(); 代码一 如果没有对person进行判空,那 ...

  2. optional 解决空指针_Java8新特性:Optional类的正确使用姿势

    空指针异常是我们在实际开发中经常会遇到的问题,为了防止程序因为异常而中断,通常要在代码中添加大量的非空验证,例如一个释放 JDBC 相关资源的代码,如下所示. public static void r ...

  3. java8新特性(5)— Optional 类

    java8新特性(5)- Optional 类 空指针解决方案 package com.common.jdk8;import java.util.Optional;//Optional 类是一个可以为 ...

  4. Java Optional容器判空处理

    Java Optional容器判空处理 1. Java判空概述 2. Java判空方式 2.1 普通判空方式 2.2 Optional判空方式 1. Java判空概述 Java判空方式有很多多,可以i ...

  5. JAVA高级——Optional

    JAVA高级--Optional 二.为何要避免null指针 三.使用Optional优化null判断 3.1.1 使用Optional优化Car类 3.1.2 Optional的几种模式 3.1.3 ...

  6. Java基础20:Java8新特性终极指南

    更多内容请关注微信公众号[Java技术江湖] 这是一位阿里 Java 工程师的技术小站,作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux ...

  7. 还看不懂同事的代码?Lambda 表达式、函数接口了解一下

    本文经授权转载自微信公众号:未读代码 Java 8 早已经在2014 年 3月 18日发布,毫无疑问 Java 8 对 Java 来说绝对算得上是一次重大版本更新,它包含了十多项语言.库.工具.JVM ...

  8. 2021-09-17

    java8新特性Optional使用 一.简介 二.API 三.使用案列 一.简介 JAVA8 新特性 Optional 防止空指针的类 二.API /** 一.Optional 容器类:用于尽量避免 ...

  9. java太臃肿_Java简洁开发技巧,减少繁琐臃肿的代码

    Java简洁开发技巧,减少繁琐臃肿的代码 Szx • 2020 年 12 月 09 日 消除if...else的方法 在项目实际开发中使用if...else判断的场景非常多,上面只是其中几种场景.下面 ...

最新文章

  1. 进程和线程你真的搞懂了吗?
  2. RedHat 7配置FTP服务
  3. -bash: jps: command not found
  4. vsCode 开发微信小程序插件
  5. 使用OnCtlColor函数消息打造背景
  6. python的read函数_Python Pandas pandas.read_sql函数方法的使用
  7. 【离散数学】基础理论归纳
  8. 合格架构师的目标管理
  9. 冒泡排序java代码_美团面试,我竟然输给了冒泡排序。。。
  10. R可视化分析美国的肥胖症,嘿!
  11. 编译器之词法分析器(Lexical Analyzer)
  12. 一名数据分析师的工作职责和需要掌握的基本知识
  13. java 调用gephi_Gephi可视化(一)——使用Gephi Toolkit创建Gephi应用
  14. linux查看目录是不是btrfs,btrfs文件系统常用命令使用
  15. python中的类和对象2
  16. 计算机模拟量与数字量的转换,PLC开关量与模拟量编程数值转换原理
  17. DVB-条件接收系统(CAS)
  18. Android实战(二)—— 房贷计算器
  19. CIDEr 评价指标
  20. WTL 绘制 圆角对话框 自绘对话框

热门文章

  1. php多线程 static变量,private static和public static的比较:多线程间
  2. 虚拟内存分页机制的页面置换
  3. redis stream学习总结
  4. C++11并发实战(专栏)
  5. 在MFC程序中增加控制台窗口
  6. 程序员要如何学英语?
  7. ElasticSearch6.x 7.x Elasticdump 在线安装、离线安装
  8. Spring Boot Serverless 实战系列“架构篇” 首发 | 光速入门函数计算
  9. 形式化验证工具TLA+:程序员视角的入门之道
  10. 双11还能创造什么新技术?