我正在學(xué)習(xí) Java 8 語法,并在下面的界面中的應(yīng)用程序中遇到了一段代碼:default EmployeeEnricher employeeEnricher() { return builder -> { return; };}有人可以幫我理解上述語法的含義嗎?此方法在應(yīng)用程序中有多種實(shí)現(xiàn),每種實(shí)現(xiàn)都有自己的邏輯。
1 回答

斯蒂芬大帝
TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊
它只返回一個(gè)EmployeeEnricher
基本上是一個(gè)Consumer<Builder>
(或同類型的功能接口),它對(duì)其參數(shù)不做任何事情,這意味著如果實(shí)現(xiàn)接口的類沒有@Override
這個(gè)方法,這將成為它的默認(rèn)行為(意味著什么都不會(huì)發(fā)生) .
在您的應(yīng)用程序中,您可能會(huì)遇到不同類型的員工,這些員工可能會(huì)使用參數(shù)中給出的構(gòu)建器以不同的方式豐富employeeEnricher().accept(builder)
這意味著實(shí)施對(duì)我來說意味著兩件事:
要么設(shè)計(jì)很差,所有員工都應(yīng)該有自己的實(shí)現(xiàn),也就是說這個(gè)接口的方法不應(yīng)該
default
只是abstract
接口的經(jīng)典方法要么一些員工沒有在你的應(yīng)用程序的上下文中得到豐富,因此這種方法提供了一個(gè)有意義的默認(rèn)實(shí)現(xiàn)
添加回答
舉報(bào)
0/150
提交
取消