Java8新特性之【Optional】

简单来说,他就是个包装类,在我们已有的对象外面再包裹一层这个Optional对象。

话不多说,直接上干货 —— 这东西到底怎么用呢?


我们先来看看 Optional 对象的几种获取方式
1.Optional.empty() 获得一个内容为空的一个对象。
2. Optional.of(value) 获得一个包装值为 value 的一个对象
3. Optional.ofNullable(value) return value == null ? empty() : of(value)

一般来说,我们会更多的去使用 ofNullable() 方法。

接下来我们再来说说它的几大常用 API

  • Optional.get() – 返回对象的值
Person person = new Person();
person.serName("张三");
Optional.ofNullable(person).get()  //return person;
  • Optional.isPresent() – 判断内容是否为空
Optional.ofNullable(person).isPresent()  //return true
  • Optional.ifPresent(Consumer c) – 判断是否为空,不为空则执行函数
//arg-消费型接口
Optional.ofNullable(person).ifPresent(p->System.out.println(p.getName()))
  • Optional.filter(Predicate p) – 过滤对象
//arg-断言型接口。  满足断言表达式则返回原Optional对象,不满足则返回空Optional对象。
Optional.ofNullable(person).filter(p->"张三".equals(p.getName))   
  • Optional.map(Function f) – 对包装内容进行映射
//arg-函数型接口。  return person.getName == null ? "张三" : "name为空"
Optional.ofNullable(person).map(p->person.getName).orElse("name为空")
//
  • Optional.orElseGet(Supplier s) – 返回供给型接口的返回值
//arg-供给型接口。  return person == null ? person对象[张三] : person对象[李四]
Optional.ofNullable(person).orElseGet(()->new Person("李四"))
  • Optional.orElse() – 包装内容为空的话,则返回 orElse() 中的对象
Optional.ofNullable(person).orElse(new Person("李四"))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值