集合判断还是用CollectionUtils,Optional有潜在的风险
public static void main(String[] args) {
//null不执行
List<User> list = null;
Optional.ofNullable(list).ifPresent(ll -> System.out.println("数据1:"+ll.toString()));
//不为null,但是这个用法需要分场景
//size=0的,可以理解为找数据没有找到符合条件的,这个size=0承载着业务含义。
//但是有没有可能给上有带来NPE呢?或者业务走向不符合预期
list = new ArrayList<>();
Optional.ofNullable(list).ifPresent(ll -> System.out.println("数据2:"+ll.toString()));
//这里不符合预期
Optional.ofNullable(list).ifPresent(ll -> {
System.out.println("操作啦啦啦啦");//可能不符合预期,如果用!CollectionUtils.isEmpty(list)判断,这里不会执行
//!CollectionUtils.isEmpty(list)会规避null和[],而这里无法规避[]
ll.forEach(l-> System.out.println("遍历:"+l.toString()));
});
User user = new User();
user.setCalcField("name");
list.add(user);
Optional.ofNullable(list).ifPresent(ll -> System.out.println("数据3:"+ll.toString()));
}
结果
数据2:[]
操作啦啦啦啦
数据3:[User(calcField=name, definitionList=null)]