lambda 表达式和函数式接口给我们的编码在一定程度上提供了便利,但我们在使用的时候也要尽量优雅的使用,达到最佳实践。
lambda 表达式结构
在第一章节,我们有提到,lambda 表达式的结构大致为:(类型)(参数1, 参数2, …) -> {方法实现}。
自定义函数式接口
- 优先使用 JDK 自带的函数式接口,避免自定义
- 接口使用
@functionalinterface
,可以有效避免自己脑子犯晕 - 不要乱用
default
,尽量不用
使用函数式接口
- 当函数式接口当参数时,应避免接口重载,不然会导致 lambda 表达式的返回类型无法自动推导
- lambda 表达式体应尽量简洁
不使用 lambda 的情况
- lambda 表达式体逻辑太多
- 有大量相同的lambda 表达式体在项目中出现,可以考虑定义接口并实现
- 有多层嵌套 lambda,代码难以阅读
总结
好的代码,不好的代码,最终都是由人来维护,所以代码的可读性很重要。保持良好的编码习惯,遵循良好的代码实践,不单单是对其他阅读代码的人友好,对自己更好。毕竟自己写的代码,相关功能的开发及维护最终还会落到自己头上。