接上篇:https://developer.aliyun.com/article/1226839?spm=a2c6h.13148508.setting.16.37c24f0e443j3c
八、 封装条件表达式函数
案例1:把简单条件表达式封装为函数
现象描述:
建议方案:
案例2:把复杂条件表达式封装为函数
现象描述:
建议方案:
以上代码也可以用采用流式(Stream)编程的过滤来实现。
主要收益:
• 把条件表达式从业务函数中独立,使业务逻辑更清晰;
• 封装的条件表达式为独立函数,可以在代码中重复使用。
九、 尽量避免不必要的空指针判断
本章只适用于项目内部代码,并且是自己了解的代码,才能够尽量避免不必要的空指针判断。对于第三方中间件和系统接口,必须做好空指针判断,以保证代码的健壮性。
案例1:调用函数保证参数不为空,被调用函数尽量避免不必要的空指针判断
现象描述:
建议方案:
案例2:被调用函数保证返回不为空,调用函数尽量避免不必要的空指针判断
现象描述:
建议方案:
案例3:赋值逻辑保证列表数据项不为空,处理逻辑尽量避免不必要的空指针判断
现象描述:
建议方案:
案例4:MyBatis查询函数返回列表和数据项不为空,可以不用空指针判断
MyBatis是一款优秀的持久层框架,是在项目中使用的最广泛的数据库中间件之一。通过对MyBatis源码进行分析,查询函数返回的列表和数据项都不为空,在代码中可以不用进行空指针判断。
现象描述:
这种写法没有问题,只是过于保守了。
建议方案:
主要收益:
• 避免不必要的空指针判断,精简业务代码处理逻辑,提高业务代码运行效率;
• 这些不必要的空指针判断,基本属于永远不执行的Death代码,删除有助于代码维护。
接下篇:https://developer.aliyun.com/article/1226834?groupCode=java