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)