java8--Optional

  • Optional:方便做空值判断,不需要写很长的if-else

Optional.of() :创建值不为空的Optional对象

Optional.ofNullable():创建值可能为空的Optional对象

get():获取Optional内部的值

isPresent():判断值是否存在,返回boolean值

filter():元素过滤

 
ifPresent():方法接受一个Consumer对象(消费函数),如果包装对象的值非空,运行Consumer对象的accept()方法

例如:Optional.ofNullable(testClass).ifPresent((e) -> {
            System.out.println("有结果");
        });


map():map()方法的参数为Function(函数式接口)对象,map()方法将Optional中的包装对象用Function函数进行运算,并包装成新的Optional对象(包装对象的类型可能改变)


flatMap():跟map()方法不同的是,入参Function函数的返回值类型为Optional类型,而不是U类型,这样flatMap()能将一个二维的Optional对象映射成一个一维的对象。即如果存在Optional<Optional<String>>结构,在map中get()的结果是Optional<String>,而flatMap的get()结果String


orElse():如果包装对象值非空,返回包装对象值,否则返回入参other的值(默认值)


orElseGet():orElseGet()方法与orElse()方法类似,区别在于orElseGet()方法的入参为一个Supplier对象,用Supplier对象的get()方法的返回值作为默认值


orElseThrow():orElseThrow()方法其实与orElseGet()方法非常相似了,入参都是Supplier对象,只不过orElseThrow()的Supplier对象必须返回一个Throwable异常,并在orElseThrow()中将异常抛出

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值