JAVA中的Optional使用简介

Optional的使用


关于Optional的好文:Optional是个好东西,你会用么?(全面深度解析)


下面这段摘自阿里JAVA编程规范:

防止NPE,是程序员的基本修养,注意NPE产生的场景:
1) 返回类型为基本数据类型,return包装数据类型的对象时,自动拆箱有可能产生NPE。 反例:public int f() { return Integer对象}, 如果为null,自动解箱抛NPE。
2) 数据库的查询结果可能为null。
3) 集合里的元素即使isNotEmpty,取出的数据元素也可能为null。
4) 远程调用返回对象时,一律要求进行空指针判断,防止NPE。
5) 对于Session中获取的数据,建议进行NPE检查,避免空指针。
6) 级联调用obj.getA().getB().getC();一连串调用,易产生NPE。
正例:使用JDK8的Optional类来防止NPE问题。

Optional相比if(obj==null)有什么区别呢,到底对程序能够带来什么改变?

基本介绍

打开源码Optional的源码,会发现和Integer等包装类很相似,Optional只有一个私有的非静态变量:T value。实际上,Optional也只是一个包装类,所有的方法都是在这个value上做操作,也没什么其他的花样。下面是Optional基本的方法。

//创新value为=null的Optional
 public static<T> Optional<T> empty();
 //创建内容为value的Optional,value不能为空
 public static <T> Optional<T> of(T value);
 //同上,value可以为空
 public static 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值