要求: 1 接口只有1个抽象方法,可以使用 @FunctionalInterface 注解定义,不是必须
2 lambda三要素
2.1: () 代表参数列表,类型可有可无,java回自己推算
2.2: -> 连接符
2.3: {} 方法体 , 只有1行代码可以省略
/** * 无参无返回值函数 */@FunctionalInterfacepublic interface NoParaAndReturn { //打印参数 void printParameter();}//有参无返回值函数@FunctionalInterfaceinterface HaveParaAndNoReturn { //打印参数 void printParameter(String color, String inch);}//无参有返回值函数interface NoParaAndHaveReturn { int printParameter();}//有参数有返回值interface HaveParaAndHaveReturn { int printParameter(String color, String inch);}
//############## 1 无参无返回值函数 ###################@Testpublic void noParaAndReturn() { // ######### 内部类实现 ######### NoParaAndReturn innerClass = new NoParaAndReturn() { @Override public void printParameter() { System.out.println("内部类实现:这是一个小米手机"); } }; innerClass.printParameter(); //######## lamda类实现 ######### NoParaAndReturn lambda = () -> { System.out.println("lamda类实现:这是一个华为手机"); }; lambda.printParameter();}//############## 2 有参无返回值函数 ###################@Testpublic void haveParaAndNoReturn() { // ######### 内部类实现 ######### HaveParaAndNoReturn innerClass = new HaveParaAndNoReturn() { @Override public void printParameter(String color, String inch) { System.out.println("内部类实现:华为p30颜色:" + color + "英寸:" + inch); } }; innerClass.printParameter("白色", "5.2"); //######## lamda类实现 ######### HaveParaAndNoReturn lambda = (color, inch) -> System.out.println("lamda类实现:华为p30颜色:" + color + "英寸:" + inch); lambda.printParameter("白色", "5.2");}//############## 3 无参有返回值函数 ###################@Testpublic void noParaAndHaveReturn() { // ######### 内部类实现 ######### NoParaAndHaveReturn innerClass = new NoParaAndHaveReturn() { @Override public int printParameter() { System.out.println("内部类实现:定义返回值 0"); return 0; } }; int innerClassReturn = innerClass.printParameter(); System.out.println("内部类实现输出返回值" + innerClassReturn); //######## lamda类实现 ######### NoParaAndHaveReturn lambda = () -> { System.out.println("lamda类实现:定义返回值 0"); return 0; }; int lambdaReturn = lambda.printParameter(); System.out.println("lamda类实现输出返回值" + lambdaReturn);}//############## 4 有参数有返回值函数 ###################@Testpublic void HaveParaAndHaveReturn() { // ######### 内部类实现 ######### HaveParaAndHaveReturn innerClass = new HaveParaAndHaveReturn() { @Override public int printParameter(String color, String inch) { System.out.println("内部类实现:定义返回值 0"); return 0; } }; int innerClassReturn = innerClass.printParameter("白色", "5.2"); System.out.println("内部类实现输出返回值" + innerClassReturn); //######## lamda类实现 ######### HaveParaAndHaveReturn lambda = (colar, inch) -> { System.out.println("lamda类实现:定义返回值 0"); return 0; }; int lombdaReturn = lambda.printParameter("白色", "5.2"); System.out.println("lamda类实现输出返回值" + lombdaReturn);}
在项目中,new Thread 的时候用到过,还有lambda的foreach,比较常用,,其他的还没有用到