概述:Lambda表达式是JDK8开始后的一种新语法形式
作用:简化匿名内部类的代码写法
格式:
()——>{}
(匿名内部类被重写方法的形参列表)——>{
被重写方法的方法体代码
}
注:——>是语法形式,无实际含义
注意:Lambda表达式,只允许操作函数式编程接口:有,且仅有一个抽象方法的接口
package com.bingyi;
public class inner {
public static void main(String[] args) {
useInter(()->{
System.out.println("Lambda表达式,重写后的show方法----");
});
}
private static void useInter(Inter inter) {
inter.show();
}
}
@FunctionalInterface
interface Inter {
void show();
}
Lambda表达式的省略写法
1.参数类型可以省略不写
2.如果只有一个参数,参数类型可以省略,同时()也可以省略
3.如果Lambda表达式的方法体代码只有一行代码
如果省略大括号不写,同时要省略分号
此时,如果这行代码是return语句,必须省略return不写,同时也必须省略“;”不写
Lambda表达式和匿名内部类的区别
使用限制不同
匿名内部类:可以操作类,接口
Lambda表达式:只能操作函数式接口
实现原理不同
匿名内部类:编译之后,产生一个单独的.class字节码文件
Lambda表达式:编译之后,没有一个单独的.class字节码文件