Lambda表达式-练习后篇
使用Lambda标准格式(有参有返回)
题目:给定一个计算器Calculator接口 内包含抽象方法calc可以将两个int数字相加得到和值
代码
接口
public interface Calculator {
public abstract int calc(int a,int b);
}
测试类:
public static void main(String[] args) {
method(20,30,(int a,int b)->{return a+b;});
}
public static void method(int a,int b,Calculator calculator){
int calc = calculator.calc(a, b);
System.out.println(calc);
}
运行结果:
Lambda省略格式
Lambda强调的是”做什么“而不是”怎么做“ 所以凡是可以根据上下文推导得知的信息 都可以省略
省略规则
在Lambda标准格式的基础上 使用省略写法的规则为:
1.小括号内参数的类型可以省略
2.如果小括号内有且仅有一个参 则小括号可以省略
3.如果大括号内有且仅有一个语句 则无论释放有返回值 都可以省略大括号 return关键字及语法分号
注意:要省略他们三个得一起省略
代码:
无参数的Lambda省略表达式:
public static void main(String[] args) {
//method(()->{ System.out.println("吃饭啦!"); });
method(()->System.out.println("吃饭啦!"));
}
public static void method(Cook cook){
cook.makeFood();
}
有参数的Lambda省略表达式:
public class test {
public static void main(String[] args) {
//method(20,30,(int a,int b)->{return a+b;});
method(20,30,(a,b)->a+b);
}
public static void method(int a,int b,Calculator calculator){
int calc = calculator.calc(a, b);
System.out.println(calc);
}
}