Optional使用记录

List<BizGift> results = Optional.ofNullable(giftName)
      .map(name -> bizGiftService.list(Wrappers.<BizGift>lambdaQuery().likeRight(BizGift::getGiftName, name)))
      .orElse(Lists.emptyList());

解释:


  • Lists.emptyList() :是Collections类的一个静态内部类,不能进行增删操作,返回一个不可变列表,此方式不需要创建对象 减少内存开销,并且返回一个size为0的list,不需要效验返回值为null。(emptySet()、emptyMap()方法同理)
  • Optional.ofNullable(giftName):判断giftName是否为null,不为null正常返回,为null时走orElse(Lists.emptyList())。
Optional.ofNullable(descs).ifPresent(s -> orderItemList.addAll(Arrays.stream(s)
      .filter(sqlInjectPredicate())
      .map(OrderItem::desc).collect(Collectors.toList())));
  • .ifPresent() : 判断descs中是否有值,如果对象不是空的,就会执行传入的 Lambda 表达式。
  • .map() : 映射, 返回一个值
  • flatmap():映射,返回多个值
  • .filter():判断条件过滤,if(Object.getStatus()  != 0)等同于 Object.filter(a -> a.getStatus() != 0)
上一篇:MySql乐观锁 ,悲观锁,CAS:


下一篇:4-2 ADO.NET-查询和检索数据2