Optional判断集合
2023-04-18 12:41:45 时间
集合判断还是用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)]
相关文章
- SpringCloud Gateway 详解
- Python花式读取大文件(10g/50g/1t)遇到的性能问题(面试向)
- Postman 最被低估的功能
- 用Python验证人耳能分辨的拍频上限
- 分布式锁:5个案例,附源码
- 人理解迭代,神则体会递归,从电影艺术到Python代码实现神的逆向思维模式
- Python算法之动态规划(Dynamic Programming)解析:二维矩阵中的醉汉(魔改版leetcode出界的路径数)
- 使用 requestAnimationFrame 实现动画
- 【编程经验】用Python计算出π的值
- Python实现自动抢红包功能
- Pandas详解
- 模拟退火算法Python编程
- Netty原理:pipeline
- 《Python for Excel》读书笔记连载1:为什么为Excel选择Python?
- 《Python for Excel》读书笔记连载2:为什么为Excel选择Python?(续)
- 《Python for Excel》读书笔记连载3:Python开发环境之Anaconda
- 《Python for Excel》读书笔记连载4:Python开发环境之Jupyter笔记本
- Python一些书写技巧
- MYSQL 通过 python 监控半同步参数设置
- 数据科学家提高效率的 40 个 Python 技巧