实现:
public class LambdaTest {
@FunctionalInterface
interface IMath{
int operation(int a, int b);
}
int testLambda(IMath lambdaTest, int a , int b) {
return lambdaTest.operation(a,b);
}
public static void main(String[] args) {
LambdaTest lambdaTest = new LambdaTest();
int result = lambdaTest.testLambda(
(a,b) -> a + b
, 1, 2);
System.out.println(result);
}
}
为了实现类似C中的回调的功能,但是java中必须有面向对象 写法
因此,做了以下操作:
- 写个类,用来接收这个函数
- 这个类中有个接口用来接收这个函数
- 类中有个函数负责调用这个函数(比如排序,排序过程写好,通过接口调用比较函数的比较方法)
- 用户直接调用实现函数,并把函数表达式塞进去给接口使用即可