Lambda表达式是Java8的新特性,是Java吸收了其他语言的优势创新出来的一种表达方法。
基本结构(参数)->{函数体}
下面举个栗子:
随便输出一堆字符串
这是原来的常规输入方式
package com.plat.acoal.test.java8;
public class LambdaDemo {
interface Printer {
void printer(String val);
}
public void printSomething(String something, Printer printer) {
printer.printer(something);
}
public static void main(String[] args) {
LambdaDemo lambdaDemo = new LambdaDemo();
String things = "erw34523";
Printer printer = new Printer() {
@Override
public void printer(String val) {
System.out.println(val);
}
};
lambdaDemo1.printSomething(things ,printer);
}}
下面采用表达式通用方式
package com.plat.acoal.test.java8;
public class LambdaDemo{
interface Printer {
void printer(String val);
}
public void printSomething(String something, Printer printer) {
printer.printer(something);
}
public static void main(String[] args) {
LambdaDemo1 lambdaDemo = new LambdaDemo();
String some = "erw34523";
Printer printer = new Printer() {
@Override
public void printer(val) {
System.out.println(val);
}
};
lambdaDemo1.printSomething(some,printer);
}}
如果参数只有一个,且代码只有一行
package com.plat.acoal.test.java8;
public class LambdaDemo1 {
interface Printer {
void printer(String val);
}
public void printSomething(String something, Printer printer) {
printer.printer(something);
}
public static void main(String[] args) {
lambdaDemo1.printSomething(some,val->System.out.println(val));
}}
如此精炼,真是美滋滋
PS:参考了字母哥的文章和B站视频,真是宝藏男孩!