java npe风险_java如何优雅的避免npe判定
optional小结
java8使用Optional实现优美的npe判断
1、optional是那种初始化方法
//空的optional对象
Optional empty =Optional.empty();
//不为null的optional对象
Optional str = Optional.of("hello world");
//可以为null的optional对象
Optional nullable = Optional.ofNullable(null);
2、使用optional.orElse可以实现兜底值
KeyValue kv = new KeyValue("keyi","hahha");
Optional kvOption =Optional.ofNullable(kv);
Optional key =kvOption.map(KeyValue::getKey);
System.out.println(key.orElse("123"));
如果kv == null ---> key.orElse("123") == "123"
如果kv != null ---> key.orElse("123") == "keyi"
2.1使用orElseGet接收实现Supplier接口的方法
KeyValue kv = null;
Optional kvOption =Optional.ofNullable(kv);
Optional key =kvOption.map(KeyValue::getKey);
System.out.println(key.orElseGet((Supplier) ()-> "fuck"));
这个时候就会输出一个fuck
2.2使用orElseThrow抛出异常
KeyValue kv = null;
Optional kvOption =Optional.ofNullable(kv);
Optional key =kvOption.map(KeyValue::getKey);
System.out.println(key.orElseThrow((Supplier) ()->{throw new IllegalArgumentException("KeyValue not null");
}));
抛出:
2.3使用ifPresent,可以接收一个Consumer的接口
java npe风险_java如何优雅的避免npe判定相关推荐
- java npe风险_NPE(java.lang.NullPointerException)防范
我们程序中NPE还是比较多的,下面介绍良好的编码规范防止NPE的发生 NPE(java.lang.NullPointerException): 空指针异常 一.[推荐]防止 NPE,是程序员的基本修养 ...
- 用java的io做一个代码计数器,如何制作Java页面计数器_java
大庆采油六厂采油工艺研究所 王兵 王波 常常逛WWW的人,一定对许多起始页上的计数器感兴趣.每当你光临某个站点的起始页时,它的计数器就很亲切地告诉你,从某年某月某日开始,你是第几位光临的人.你可能也想 ...
- Java枚举:您拥有优雅,优雅和力量,这就是我所爱!
当Java 8即将面世时,您确定您对Java 5中引入的枚举很了解吗? Java枚举仍然被低估了,很可惜,因为它们比您想象的要有用,它们不仅仅用于通常的枚举常量! Java枚举是多态的 Java枚举是 ...
- 【源码+图片素材+详细教程】Java游戏开发_Java开发经典游戏飞翔的小鸟_飞扬的小鸟_Java游戏项目Flappy Bird像素鸟游戏_Java课程设计项目
课程目标: 1.通过本课程的学习巩固Java的相关基础知识,例如循环判断,数组和集合的使用,对象的继承,接口的实现,窗口的创建,事件监听,图形绘制. 2.完成小鸟的移动,管道自动生成.碰撞死亡,计分系 ...
- 计算机毕业设计Java保险公司风险测评管理系统(源码+系统+mysql数据库+lw文档)
计算机毕业设计Java保险公司风险测评管理系统(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java保险公司风险测评管理系统(源码+系统+mysql数据库+lw文档) 本源码技术栈: 项目 ...
- 基于JAVA保险公司风险测评管理系统计算机毕业设计源码+系统+lw文档+部署
基于JAVA保险公司风险测评管理系统计算机毕业设计源码+系统+lw文档+部署 基于JAVA保险公司风险测评管理系统计算机毕业设计源码+系统+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开发语 ...
- java异常面试_java中异常的面试
https://blog.csdn.net/qq_36523638/article/details/79363652 1) Java中的检查型异常和非检查型异常有什么区别? 这又是一个非常流行的Jav ...
- JAVA保险公司风险测评管理系统计算机毕业设计Mybatis+系统+数据库+调试部署
JAVA保险公司风险测评管理系统计算机毕业设计Mybatis+系统+数据库+调试部署 JAVA保险公司风险测评管理系统计算机毕业设计Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B ...
- 【源码+教程】Java桌球游戏_Java初级项目_Java练手项目_Java项目实战_Java游戏开发
今天分享的Java开源游戏项目是桌球游戏,初学者也可以用来练习喔~课程详细讲解了一个桌球游戏的编写思路和流程,即使你刚学Java没多久,也可以跟随该教程视频完成属于你自己的桌球游戏!同时,还可以加深和 ...
最新文章
- 400万奖金池,倪光南、邓中翰等顶级学者指导,大手笔芯片比赛邀你参与
- androidHandler讲解
- 【必看】Linux 下的 TCP参数优化
- sublime text3 按F5运行python代码
- 洛谷P5664:Emiya 家今天的饭(容斥、dp)
- 关于 C语言的 按位取反 ~
- 作者:王楠,博士,就职于郑州商品交易所期货及衍生品研究所有限公司。
- 【Elasticsearch】使用 Elasticsearch Painless 脚本以递归方式遍历 JSON 字段
- c语言次幂如何表达_如何确保分布式场景下的并发幂等性?
- 关于SQL语言的优化(Oracle)
- 基于slicer开发(简化功能与插件开发)
- RDKit | 基于RDKit 的化合物预处理
- MATLAB和C语言的区别
- 《软件设计师教程最新版(第三版》
- 【传智播客】Javaweb程序设计任务教程 黑马程序员 第一章 课后答案
- 淘宝客淘点金代码自动生成跳转
- 12000字解读元气森林:套利与降维的游戏
- vue中使用bootstrap4踩坑之旅
- HackTheBox-baby todo or not todo
- [JAVA毕业设计]二手车交易平台源码获取和系统演示
热门文章
- 笔记本电脑计算机配置,笔记本配置怎么看,详细教您怎么查看笔记本电脑的配置...
- 让皮肤美白水嫩的水果! - 生活至上,美容至尚!
- 苹果考虑开发大于12.9英寸iPad,并带有玻璃后盖
- i3 1315U和i5 1340p差多少 酷睿i31315U和i51340p对比
- 安卓手机字体修改教程
- (十一)Server-side request forgery (SSRF)
- 笔记本电脑是一种中小型计算机,综合分析各种笔记本电脑配置性能,让你选择自己需要的产品...
- 数据库concat函数
- postman 数据流请求
- 微信公众号开发接收语音消息时权限