…但还有更优雅的解决方案。你可以使用 orElse方法来使得当它为null时给出一个代替的值。
…或者使用 orElseGet方法来处理上述相同情况。这个例子和上面的看起来好像一样,但本例是可以调用
supplier 接口的 实现
,,因此如果它是一个高开销的方法,可以使用 lambda 表达式来获得更好的性能。
使用Lambda表达式
Lambda 表达式 是 Java 8 的卖点之一.。即使你还没有使用过Java 8, 到目前你也可能有一些基本的了解。但在Java编程中还是一种新的方式,它也不是明显的”最佳实践” 。 这里有一些我遵循的指南。
保持简短
函数式程序员更愿意使用较长的lambda 表达式,但我们这些仅仅使用Java很多年的程序员来说更容易保持lambda 表达式的短小。你甚至更喜欢把它们限制在一行,更容易把较长的表达式 重构 到一个方法中。
把它们变成一个方法引用, 方法引用看起来有一点陌生,但却值得这样做,因为在某些情况有助于提高可读性,后面我再谈可读性。
明确的
(作者应该想要表达的是: 参数命名规范,要有意义;有更好的翻译请修正)
lambda 表达式中类型信息已经丢失了,因此你会发现包含类型信息的参数会更有用。