student.age < 18
的函数对象为, student -> student.age < 18
student.sex.equals('M')
的函数对象为,student -> student.sex.equals('M')
有函数对象,则需要一个函数式接口用于执行该对象。由于上述函数对象的形参均为 Student 对象,返回值均为布尔类型,所以函数式接口方法应当匹配。
(int a, int b) -> {int c = a + b; return c;}
代码多余一行,需要括号及 return
(a, b) -> a + b;
通过代码上下文(上下文中其接口)能确认参数、返回值类型,则省略不写。该函数对象的类型是其函数式接口类型。
interface Lambda{
int op(int a, int b);
}
Lambda lambda = (a, b) -> a + b;