为了账号安全,请及时绑定邮箱和手机立即绑定

带有 lambda 的 Java 默认方法

带有 lambda 的 Java 默认方法

千万里不及你 2022-07-06 10:04:55
我正在学习 Java 8 语法,并在下面的界面中的应用程序中遇到了一段代码:default EmployeeEnricher employeeEnricher() {      return builder -> {          return;      };}有人可以帮我理解上述语法的含义吗?此方法在应用程序中有多种实现,每种实现都有自己的逻辑。
查看完整描述

1 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

它只返回一个EmployeeEnricher基本上是一个Consumer<Builder>(或同类型的功能接口),它对其参数不做任何事情,这意味着如果实现接口的类没有@Override这个方法,这将成为它的默认行为(意味着什么都不会发生) .

在您的应用程序中,您可能会遇到不同类型的员工,这些员工可能会使用参数中给出的构建器以不同的方式丰富employeeEnricher().accept(builder)

这意味着实施对我来说意味着两件事:

  • 要么设计很差,所有员工都应该有自己的实现,也就是说这个接口的方法不应该 default只是abstract接口的经典方法

  • 要么一些员工没有在你的应用程序的上下文中得到丰富,因此这种方法提供了一个有意义的默认实现


查看完整回答
反对 回复 2022-07-06
  • 1 回答
  • 0 关注
  • 98 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号