一、Lamda表达式概念与要求
- 概念:
Lambda 表达式是 JDK8 的一个新特性,可以取代大部分的匿名内部类,写出更优雅的 Java 代码,尤其在集合的遍历和其他集合操作中,可以极大地优化代码结构 - 要求:
要实现的接口必须是函数式接口,即接口中只能有一个要被实现的方法,由于多线程中Runnable接口就是一个函数式接口,所以在多线程中Lamda表达应用广泛
例如以下这些都是函数式接口:
//无参数无返回
interface VoidNoParam{
void lambda();
}
//单参数无返回
interface VoidSingerParam{
void lambda(int a);
}
//多参数无返回
interface VoidMultiParam{
void lambda(int a,int b);
}
//无参数有返回
interface ReturnNoParam{
int lambda();
}
//单参数有返回
interface ReturnSingerParam{
int lambda(int a);
}
//多参数有返回
interface ReturnMultiParam{
int lambda(int a,int b);
}
二、Lambda表达式应用示例
Lambda表达式的语法形式为 () -> {},其中 () 用来描述参数列表,{} 用来描述方法体,-> 为 lambda运算符 ,读作(goes to),以下为无返回值的示例,有返回值的调用方法时候接收就好
VoidNoParam vnp=()->{
System.out.println("无参数无返回");
};
vnp.lambda();
VoidSingerParam vsp=(a)->{
System.out.println("参数为"+a+"的多参数无返回");
};
vsp.lambda(3);
VoidMultiParam vmp=(a,b)->{
System.out.println("参数为"+a+"和"+b+"的多参数无返回");
};
vmp.lambda(2,3);
输出结果
无参数无返回
参数为3的多参数无返回
参数为2和3的多参数无返回