Java 8 最佳技巧

 …

…但还有更优雅的解决方案。你可以使用 orElse方法来使得当它为null时给出一个代替的值。

…或者使用 orElseGet方法来处理上述相同情况。这个例子和上面的看起来好像一样,但本例是可以调用 supplier 接口的 实现 ,,因此如果它是一个高开销的方法,可以使用 lambda 表达式来获得更好的性能。

使用Lambda表达式

Lambda 表达式 是 Java 8 的卖点之一.。即使你还没有使用过Java 8, 到目前你也可能有一些基本的了解。但在Java编程中还是一种新的方式,它也不是明显的”最佳实践” 。 这里有一些我遵循的指南。

保持简短

函数式程序员更愿意使用较长的lambda 表达式,但我们这些仅仅使用Java很多年的程序员来说更容易保持lambda 表达式的短小。你甚至更喜欢把它们限制在一行,更容易把较长的表达式 重构 到一个方法中。

把它们变成一个方法引用, 方法引用看起来有一点陌生,但却值得这样做,因为在某些情况有助于提高可读性,后面我再谈可读性。

明确的

(作者应该想要表达的是: 参数命名规范,要有意义;有更好的翻译请修正)

lambda 表达式中类型信息已经丢失了,因此你会发现包含类型信息的参数会更有用。如你所见,这样会比较麻烦。因此我更喜欢给参数一个更有意义的命名。当然,你做与否, IntelliJ IDEA 都会让你看到参数的类型信息。