java optional 报错,java8 optional笔记

一、原因:

为避免nullPointException错误,一般都是进行显示的!=null判断,对于一些代码嵌套比较深的代码,会多出很多if-else,而且代码的拓展性和可读性较差。

二、使用方法

1、Optional类是对原有类的一次封装

变量存在时,Optional类是对原有类的简单封装;变量不存在时是会返回Optional.empty() 空对象

注意:

1、Optional.empty()对象和NULL有着本质的区别,引用null会报错,而引用Optional.empty()对象不会

2、Optional 在语义上可以表示允许该类为空

2、Optional创建

// 创建空的Optional对象

Optional optObj=Optional.empty()

//创建非空对象

Optional optObj=Optional.of(T类对象实例)

// 创建可接受null的Optional

Optional optObj=Optional.ofNullable(T类对象实例)

由于这种对象一般都会调用相应方法,Optional提供了相应的map和filter方法,返回都是Optional封装的对象

注意:

如果方法返回值是Optional对象,又调用map方法,那最终得到的返回值为Optional>类型

这种就不能连续使用map或者filter方法

解决:

使用flatMap方法,它会把多个Optional嵌套变成一个Optional对象

关于Optional 值得获取方式,常用的方式有:

1、get() 为空时 会报错,不建议 ,因为与Null基本一致

2、orElse(T other) 在对象不包含值时会提供一个默认值 建议

3、应用

用Optional 封装可能为null的值,如

Object value=map.get("key");

Optional value=Optional.ofnullable(map.get("key"));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值