对lambda表达式的理解
/*
lambda表达式的运用
1.适用于单方法接口Comparator,Runnable,Callable等,单方法接口可以用注解@FunctionalInterface标记
2.使用lambda不会产生新的类
3.Lambda表达式的参数和返回值均可由编译器自动推断
* */
public class Lambda {
@FunctionalInterface
interface Sum{
int getSum(int x,int y);
}
@FunctionalInterface
interface Sout{
void show(String a);
}
public static void main(String[] args) {
//有声明类型,有大括号和return
Sum sum1 = (int a,int b)-> {return a+b;};
System.out.println("两数之和为"+sum1.getSum(9,9));
//有声明类型,无大括号和return,如果主体包含了一个语句,就不需要使用大括号。
Sum sum2 = (int a,int b)->a*b;
System.out.println("两数之积为"+sum2.getSum(9,9));
//无声明类型。无大括号和return,不需要声明参数类型,编译器可以统一识别参数值。
Sum sum3 = (a,b)->{return a/b;};
System.out.println("两数之除为"+sum3.getSum(10,1));
//无声明类型,无圆括号。无大括号和return,一个参数无需定义圆括号,但多个参数需要定义圆括号。
System.out.println("两数之输出为");
Sout s = a-> System.out.println(a);
s.show("ddddd");
}
}
输出结果: