最常见的Optional操作

新特性

  1. Optional 类是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。

  2. Optional 是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。

  3. Optional 类的引入很好的解决空指针异常。

好处

  • 可以对不确定对象(可能为null),取其中某属性的值(可能为nul)用很简洁的方式进行提取;好处也不止如此。。

使用技巧

  1. Optional.of() //指定的属性不能为null,否则会抛出NPE;
  2. Optional.ofNullable() //指定的属性可以为null;
  3. //.isPresent()是否存在 
    Map m =new HashMap();
    Optional.ofNullable(m.get(1)).isPresent() //判断该map中key值为1是否存在,m可以为null
  4. Map m =new HashMap();
    Optional.ofNullable(m.get(1)).get(); //取出该值,不存在时抛出NPE;
    //.orElse(default)值不存在时取出default的值
    Optional.ofNullable(m.get(1)).orElse(10); //取出该值,不存在时取10;
  5. UserDto userDto =new UserDto();
    userDto.setUserName("http://minwk.top/");
    //.map()可以映射返回对象指定属性的值
    System.out.println(Optional.ofNullable(userDto).map(UserDto::getUserName).get()); //返回用户名
    System.out.println(Optional.ofNullable(userDto).map(u->u.getUserName()).get()); //返回用户名
  6. UserDto userDto = null;
    Optional.ofNullable(userDto).map(u->u.getUserName()).orElse("http://minwk.top/"); //userDto对象为空时返回默认值,u.getUserName()为空时也会返回默认值,相当之简洁
    ​
    Map<Integer, CommodityAreaInfo> commodityInfoMap = null;
    System.out.println(Optional.ofNullable(commodityInfoMap)
                       //取commodityInfoMap中key=1的对象
                    .map(c->c.get(1))
                       //取commodityInfoMap中key=1的对象,再取该对象的getSellingPrice
                    .map(CommodityAreaInfo::getSellingPrice).orElse(BigDecimal.TEN));

目前就用到这么多,等用到新的再补充!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值