Java lambda 的默认方法
Java default methods with lambda
我正在学习 Java 8 语法,并在我们的应用程序界面中遇到了一段代码:
default EmployeeEnricher employeeEnricher() {
return builder -> {
return;
};
}
谁能帮我理解上面的语法是什么意思?
该方法在应用程序中有多个实现,每个都有自己的逻辑。
它只是 returns 一个 EmployeeEnricher
,它基本上是一个 Consumer<Builder>
(或同类的功能接口),它对其参数没有任何作用,这意味着如果 class 实现接口没有 @Override
这个方法,这将成为它的默认行为(意味着什么都不会发生)。
在您的应用程序中,您会遇到不同类型的员工,这些员工可能会使用 employeeEnricher().accept(builder)
参数中给定的构建器以不同的方式进行充实
这意味着实施对我来说意味着两件事:
要么设计不好,所有员工都应该有自己的实现,意思是这个接口的方法不应该是default
,而只是一个classic abstract
接口方法
有些员工没有在您的应用程序上下文中得到丰富,因此此方法提供了一个有意义的默认实现
我正在学习 Java 8 语法,并在我们的应用程序界面中遇到了一段代码:
default EmployeeEnricher employeeEnricher() {
return builder -> {
return;
};
}
谁能帮我理解上面的语法是什么意思?
该方法在应用程序中有多个实现,每个都有自己的逻辑。
它只是 returns 一个 EmployeeEnricher
,它基本上是一个 Consumer<Builder>
(或同类的功能接口),它对其参数没有任何作用,这意味着如果 class 实现接口没有 @Override
这个方法,这将成为它的默认行为(意味着什么都不会发生)。
在您的应用程序中,您会遇到不同类型的员工,这些员工可能会使用 employeeEnricher().accept(builder)
这意味着实施对我来说意味着两件事:
要么设计不好,所有员工都应该有自己的实现,意思是这个接口的方法不应该是
default
,而只是一个classicabstract
接口方法有些员工没有在您的应用程序上下文中得到丰富,因此此方法提供了一个有意义的默认实现