use*_*369 3 java lambda java-8 default-method
我正在学习Java 8语法,并在下面的界面中遇到了一段代码:
default EmployeeEnricher employeeEnricher() {
return builder -> {
return;
};
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮我理解上面的语法是什么意思吗?
应用程序中有多个此方法的实现,每个实现都有自己的逻辑.
它只返回一个EmployeeEnricher基本上是一个Consumer<Builder>(或同一类型的功能接口),它对其参数没有任何作用,这意味着如果实现接口的类不是@Override这个方法,这将成为它的默认行为(意味着什么都不会发生) .
在您的应用程序中,您可能会遇到不同类型的员工,这些员工可能会使用参数使用中的构建器以不同的方式进行丰富 employeeEnricher().accept(builder)
这意味着实现对我来说意味着两件事:
设计很差,所有员工都应该有自己的实现,这意味着这个接口的方法不应该 default只是abstract接口的经典方法
有些员工在应用程序的上下文中没有得到丰富,因此这种方法提供了一个有意义的默认实现