2015-01-03 55 views
5

我們可以爲吸氣lambda表達式如下Lambda表達式進行setter

Function<Student, String> studentNameGetter = Student::getName; 

如何爲二傳手創建lambda表達式?

回答

16

我不確定爲setter創建lambda表達式是什麼意思。

它看起來像你試圖做的是將方法引用分配到合適的功能接口。在這種情況下,最好的匹配是對一個BiConsumer

BiConsumer<Student, String> studentNameSetter = Student::setName; 
+1

你能解釋爲什麼這個工程?我認爲一個'BiConsumer '只能分配給像'(Student a,String b) - > a.setName(b)''。但'setName'的簽名只有一個參數。 – T3rm1

+0

@ T3rm1它的工作原理是'Student a'是一個參數,'setName'只有一個參數。因此消費者將目標對象以及設置者參數作爲其參數。 – Mukund