Lambda 表达式入门案例
一 定义函数接口
/**
* @Author yqq
* @Date 2021/5/14 0:53
* @Version 1.0
*/
/**
* 无返回值,无参数
*/
interface NoturnNoParm{
void method();
}
/**
* 无返回值,有一个参数
*/
interface NoturnOneParm{
void method(int a);
}
/**
* 无返回值,有2个参数
*/
interface NoturnMultParm{
void method(int a,int b);
}
/**
* 有返回值,有一个参数
*/
interface ReturnOneParam{
int method(int a);
}
/**
* 有返回值,有多个参数
*/
interface ReturnMultiParam{
int method(int a,int b);
}
}
二 实现函数接口
public class Test {
public static void main(String[] args) {
/**
* 无返回值,无参数
*/
NoturnNoParm n=()->{
System.out.println("NoturnNoParm");
};
n.method();
/**
* 无返回值,有一个参数
*/
NoturnOneParm n1=(a) -> {
System.out.println("NoturnOneParm "+a);
};
n1.method(10);
/**
* 无返回值,有2个参数
*/
NoturnMultParm n2=(int a,int b) -> {
System.out.println("NoturnMultParm "+(a+b));
};
n2.method(10,10);
/**
* 有返回值,有一个参数
*/
ReturnOneParam r=(int a) -> {
System.out.println("ReturnOneParam");
return a;
};
System.out.println(r.method(100));
/**
* 有返回值,有多个参数
*/
ReturnMultiParam returnMultiParam = (int a ,int b)->{ System.out.print("ReturnMultiParam "); return a+b;};
System.out.println(returnMultiParam.method(10,20));
}
三 Lambda 语法简化
/**
* NoReturnNoParam noReturnNoParam = ()->{
* System.out.println("NoReturnNoParam");
* };
*/
/**
* 语法简化
*/
NoturnNoParm noturnNoParm=()-> System.out.println("NoturnNoParm的简化版");
noturnNoParm.method();
/**
* 有返回值,有多个参数
*/
/**
* ReturnMultiParam returnMultiParam = (int a ,int b)->{
* System.out.print("ReturnMultiParam ");
* return a+b;
* };
*/
/**
* 简化版
*/
ReturnMultiParam returnMultiParam = (a ,b)->a+b;
System.out.println(returnMultiParam.method(10,20));
/***
无返回值,有一个参数
*/
/* NoReturnOneParam noReturnOneParam = (int a)->{ System.out.println("NoReturnOneParam "+a); };
*/
/**
简化版
*/
NoReturnOneParam noReturnOneParam = a -> System.out.println("NoReturnOneParam "+a);
noReturnOneParam.method(10);
/*** 无返回值,有多个参数 */
/* NoReturnMultiParam noReturnMultiParam = (int a, int b)->{ System.out.println("NoReturnMultiParam "+a+"\t"+b); };
*/
/**
简化版
*/
NoReturnMultiParam noReturnMultiParam =(a,b)-> System.out.println("NoReturnMultiParam "+a+"\t"+b);
noReturnMultiParam.method(10,20);