Lambda简介
Lambda 表达式是 JDK8 的一个新特性。
在处理包含单个方法的接口时,传统方法是通过实现具体类或者匿名内部类的方式实现,使得功能显示繁琐,而引入Lambda表达式这种新特性后,可以用更加简洁的代码来实现功能,同时,也带来了一种函数式编程思想的改变。
Lambda表达式的语法
基本语法: (parameters) -> expression 或 (parameters) ->{ statements; }
Lambda的实现
1、实现函数式接口,需要一个只包含一个抽象方法的普通接口
// 定义接口
public interface TestInterface{
public int getData(int v1,int v2);
}
2、简单实现
// 测试实现
public class TestMain{
public static void main(String[] args) {
// 定义
TestInterface data = (v1,v2)->{
// 实现具体业务
return v1 + v2;
};
// 实现
int v = data.getData(50,40);
System.out.println(v);
}
}
Lambda的具体使用
1、我们可以通过注解FunctionalInterface,来验证接口是否是函数式接口
@FunctionalInterface
public interface TestInterface {
public int getData(int v1,int v2);
}
2、如果参数只有一个,在定义中,可以不用括号
@FunctionalInterface
public interface TestInterface {
public int getData(int v);
}
public class TestMain{
public static void main(String[] args) {
// 定义
TestInterface data = v -> {
// 实现具体业务
return v;
};
// 实现
int value = data.getData(100);
System.out.println(value);
}
}
3、如果无参数,在定义中,使用一个小括号
@FunctionalInterface
public interface TestInterface {
public int getData();
}
public class TestMain{
public static void main(String[] args) {
// 定义
TestInterface data = () -> {
// 实现具体业务
return 100;
};
// 实现
int value = data.getData();
System.out.println(value);
}
}
4、如果不需要返回值,接口定义为void类型
@FunctionalInterface
public interface TestInterface {
public void getData();
}
public class TestMain{
public static void main(String[] args) {
// 定义
TestInterface data = () -> {
// 实现具体业务
System.out.println("测试实现");
};
// 实现
data.getData();
}
}
发个福利:【告别996,开启Java高效编程之门】
网盘:https://pan.baidu.com/s/1qOsTRTX52a3mX-vdwUBeZw 提取码:e94h