函数式接口
@FunctionalInterface
来约束接口是一个函数式接口
@FunctionalInterface
public interface InterA {
public abstract void print();
}
Lambda表达式的省略规则:
如果方法中只有一个参数,那么数据类型和小括号多可以省略
如果方法中有多个参数,那么数据类型可以省略
如果大括号中只有一行代码,那么大括号、return、分号都可以省略(三者必须一起省略)
----------------------------------------------
通过Lambda表达式调用method方法。输出:
调用一个无参数无返回值类型的方法。
main {
method(()->{syso();});
//省略格式
method(()->syso());
}
public static void method(InterA i) {
i.print();
}
调用一个有参数有返回值类型的方法。
main {
method(10, 20, (int num1, int num2)->{return num1 + num2;});
//省略格式
method(10, 20, (int num1, int num2)->num1 + num2);
}
public static void method(int num1, int num2, InterB i) {
int result = i.getSum(num1, num2);
syso(result);
}
接口InterA:
@FunctionalInterface
public interface InterA {
public abstract void print();
}
接口InterB:
@FunctionalInterface
public interface InterB {
public abstract int getSum(int num1, int num2);
}