Java使用lambda表达式实现接口
- 一、Java使用lambda表达式实现接口
- 1、抽象类
- 2、实现代码
- 3、演化流程
一、Java使用lambda表达式实现接口
1、抽象类
@FunctionalInterface
public interface MyInterface {
String hello(String name);
}
@FunctionalInterface注解的作用是为了避免后来的人在这个接口中增加接口函数导致其有多个接口函数需要被实现,变成「非函数接口」,我们可以在这个上面加上一个声明eFunctionalInterface,这样别人就无法在里面添加新的接口函数了
2、实现代码
@Test
void test() {
MyInterface myLambdaInterface = (s) -> {
if (s == null) {
return "What's your name";
}
return "hello" + s;
};
System.out.println(myLambdaInterface.hello(null));
System.out.println(myLambdaInterface.hello("David"));
}
What's your name
helloDavid
3、演化流程
由于所有的lambda的类型就是一个接口,而lambda表达式本身,也就是【那段代码】,需要是这个接口的实现。简而言之是Lambda表达式本身就是一个接口的实现。
myLambdaInterface = public void hello(String s){
xxxxxx
}
//去掉public多余的
myLambdaInterface =void hello(String s){
xxxxxx
}
//去掉函数名,因为已经赋值给myLambdaInterface
myLambdaInterface =void(String s){
xxxxxx
}
//去掉返回类型,因为编译器自己可以判断
myLambdaInterface =(String s){
xxxxxx
}
//去掉参数类型,因为编译器自己可以判断
myLambdaInterface =(s){
xxxxxx
}
//如果只有一行可以不使用大括号再惨呼和函数之间加加上一个箭头符号->
myLambdaInterface =(s)-> xxxxxxx
//由于Lambda表达式本身就是一个接口的实现。我们给代码添加类型
MyInterface myLambdaInterface = (s) -> {xxxxxxxxx}
- 当生活给你安排的是阴天,记得自己也有种撑伞的勇气。
- 当你觉得世界对你不公时,别忘了,路人皆是演员,世界从不缺少看客。
- 不要被困境打败,因为风雨过后必是彩虹。
- 在追逐梦想的道路上,不要忘记感受身边的风景和美好。
- 每一次努力都有它的价值,只要坚持,你终将获得属于自己的成功。