带有 lambda 的 Java 默认方法

我正在学习 Java 8 语法,并在下面的界面中的应用程序中遇到了一段代码:


default EmployeeEnricher employeeEnricher() {

      return builder -> {

          return;

      };

}

有人可以帮我理解上述语法的含义吗?


此方法在应用程序中有多种实现,每种实现都有自己的逻辑。


千万里不及你
浏览 99回答 1
1回答

斯蒂芬大帝

它只返回一个EmployeeEnricher基本上是一个Consumer<Builder>(或同类型的功能接口),它对其参数不做任何事情,这意味着如果实现接口的类没有@Override这个方法,这将成为它的默认行为(意味着什么都不会发生) .在您的应用程序中,您可能会遇到不同类型的员工,这些员工可能会使用参数中给出的构建器以不同的方式丰富employeeEnricher().accept(builder)这意味着实施对我来说意味着两件事:要么设计很差,所有员工都应该有自己的实现,也就是说这个接口的方法不应该&nbsp;default只是abstract接口的经典方法要么一些员工没有在你的应用程序的上下文中得到丰富,因此这种方法提供了一个有意义的默认实现
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java