package com.zhoufu.springboot02config.pojo;
public class DemoLambda {
//1.接口
interface Printer{
//接口方法
void printer(String str);
}
//2.本类的方法
public void pringtext(String text, Printer printer){
//调用传进来的 Printer 接口方法
printer.printer(text);
}
public static void main(String[] args) {
DemoLambda demoLambda = new DemoLambda();
//3.使用匿名内部类的方式实现Printer并实现方法
Printer printer = new Printer() {
@Override
public void printer(String str) {
//就打印一下传过来的字符串
System.out.println(str);
}
};
//通过本类调用方法( 此方法又调用传过来的接口的方法 )
demoLambda.pringtext("匿名内部类",printer);
System.out.println("======================================");
// lambda表达式的第一步简化:
Printer printer1 = (String str) -> {
System.out.println(str);
};
demoLambda.pringtext("第一步简化",printer1);
System.out.println("======================================");
//lambda表达式的第二步简化:参数省略掉类型
Printer printer2 = (str) -> {
System.out.println(str);
};
demoLambda.pringtext("第二步简化",printer2);
System.out.println("======================================");
//lambda表达式的第三步简化:只有一个参数时,可省略掉包裹参数的括号
Printer printer3 = str -> {
System.out.println(str);
};
demoLambda.pringtext("第三步简化",printer3);
System.out.println("======================================");
//lambda表达式的第四步简化:函数体只有一行的话,可省略掉包裹函数体的花括号
Printer printer4 = str -> System.out.println(str);
demoLambda.pringtext("第四步简化",printer4);
System.out.println("======================================");
//lambda表达式的第五步简化:直接省略掉接口变量名
demoLambda.pringtext("第五步简化",str -> System.out.println(str));
System.out.println("======================================");
}
}
控制台: