我们有以下用于getter的lambda表达式:
Function<Student, String> studentNameGetter = Student::getName;
针对setter使用lambda表达式如何?
我不确定你所说的创建lambda表达式是什么意思。
看起来你正在尝试将方法引用分配给适当的函数式接口。在这种情况下,最佳匹配是一个BiConsumer
:
BiConsumer<Student, String> studentNameSetter = Student::setName;
BiConsumer<Student, String>
只能被赋值给像(Student a, String b) -> a.setName(b)
这样的东西。但是setName
的签名只有一个参数。 - T3rm1Student a
是一个参数,而setName
也只有一个参数。因此,消费者函数将目标对象以及设置器参数作为其参数。 - Mukund Jalan