Mat*_*tan 1 java methods lambda java-8
可以说我有
public class Student {
public Integer getGrade() { return 1;}
}
Run Code Online (Sandbox Code Playgroud)
我想将此函数作为 java 中的函数传递到其他类(不是学生)
哪种语法允许我这样做?
Function<Student,Integer> = ***
Run Code Online (Sandbox Code Playgroud)
做就是了:
Function<Student,Integer> f = Student::getGrade;
Run Code Online (Sandbox Code Playgroud)
您似乎忘记为变量声明命名!
解释:
Function<Student,Integer>表示一个以 aStudent作为参数并返回 的函数Integer。显然,getGrade不满足这些标准。但是,由于调用getGrade需要一个Student对象(因为它是一个实例方法),因此编译器可以巧妙地使用Student传入的参数来调用getGrade。
如果你不明白我的意思,语法相当于:
Function<Student,Integer> f = student -> student.getGrade();
Run Code Online (Sandbox Code Playgroud)
因此,下面两行是相同的:
f(myStudent);
myStudent.getGrade();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4645 次 |
| 最近记录: |