指定太多的方法:
在类中使用注解而不是在接口:
Lambda 表达式可用于任意只包含单个抽象方法的接口中,但是不能用于满足该要求的抽象类。看似不符合逻辑,但实际要求必须如此。
Streams
Stream API 是Java 8的另一大卖点, 我认为到现在为止,我们仍然不知道这会对我们的编码方式有多大改变.但我发现这是一个好坏参半的功能。
流式风格
就我个人而言,更喜欢使用流式风格.当然你不必也这么做, 但我发现它帮助了我:
- 一眼就能看出有哪些操作,它的执行顺序是什么
- 更方便调试(虽然IntelliJ IDEA提供了 在包含lambda表达式的行上设置断点的能力 ,为了更方便调试,把它拆分到不同的行上)
- 在测试的时候允许取消一个操作
- 在调试或测试是,可以很方便的插入peek()


使用方法引用
是的,你需要一点时间来适应这个奇怪的语法。但如果使用恰当,真的可以提升代码的可读性,看看下面代码:
以及使用 Objects
类的辅助方法:
后面一段代码更加的明确可读。IntelliJ IDEA 通常会知道怎么将一个 Lambda 表达式进行折叠。