Optional 类用法

1 创建Optional 

(常用)Optional.ofNullable(T);

Optional.of(T);

new Optional(T);

Optional.empty();//创建一个包装对象值为空的Optional对象

2 使用Optional

(常用)Optional.get()方法(返回对象的值) ;//返回一个option的实例值

(常用) Optional.isPresent()方法(判读是否为空);//对象不为空则为真,如果为空则false

(常用) Optional.ifPresent()方法(判读是否为空并返回函数)//如果对象非空,则运行函数体

Optional.filter()方法(过滤对象)//接受一个对象,然后对他进行条件过滤,如果条件符合则返回Optional对象本身,如果不符合则返回空Optional

Optional.flatMap()方法(Optional对象进行二次包装)//进行二次运算,封装成新的对象然后返回在Optional中;

(常用) Optional.orElse()方法(为空返回对象)//如果包装对象为空的话,就执行orElse方法里的value,如果非空,则返回写入对象

Optional.orElseGet()方法(为空返回Supplier对象)//为空返回传入对象的.get()方法,如果非空则返回当前对象。

(常用) Optional.orElseThrow()方法(为空返回异常)//如果为空,就抛出你定义的异常,如果不为空返回当前对象,在实战中所有异常肯定是要处理好的,为了代码的可读性

相似方法进行对比分析

可能看到这,没用用过的话会觉得orElse()orElseGet()还有orElseThrow()很相似,map()和flatMap()好相似,不用着急,都是从这一步过来的,我再给大家总结一下不同方法的异同点 orElse()orElseGet()orElseThrow()的异同点

方法效果类似,如果对象不为空,则返回对象,如果为空,则返回方法体中的对应参数,所以可以看出这三个方法体中参数是不一样的 orElse(T 对象) orElseGet(Supplier < T >对象) orElseThrow(异常)

map()和orElseGet的异同点

方法效果类似,对方法参数进行二次包装,并返回,入参不同 map(function函数) flatmap(Optional< function >函数)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值