Lamda表达式
作者:互联网
Lambda表达式
- λ是希腊字母表中排序第十一位的字母,英文名为Lambda。
- 其实质是函数式编程
- 使用 Lambda 表达式可以使代码变的更加简洁紧凑。
- 避免匿名内部类定义过多
- 去掉无意义的代码,留下核心的思维
语法
(params)->expression[表达式]
(params)->statement[语句]
(params)->{statements}
函数式接口(Functional Interface)
定义
- 任何接口,若只包含唯一抽象方法,那么它就是函数式接口,对于函数式接口,可以使用Lambda表达式来创建对象。
特征
- 可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。
- 可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。
- 可选的大括号:如果主体包含了一个语句,就不需要使用大括号。
- 可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定表达式返回了一个数值。
代码实现测试
interface FunInterface{
void did(int a,double b);
}
public class Lamda {
//静态内部类
static class Lamda2 implements FunInterface{
@Override
public void did(int a,double b) {
System.out.println("静态内部类实现接口方法");
}
}
public static void main(String[] args) {
//局部内部类
class Lamda3 implements FunInterface{
@Override
public void did(int a,double b) {
System.out.println("局部内部类实现接口方法");
}
}
FunInterface l1=new Lamda1();
FunInterface l2=new Lamda2();
FunInterface l3=new Lamda3();
//匿名内部类
FunInterface l4=new FunInterface() {
@Override
public void did(int a,double b) {
System.out.println("匿名内部类实现接口方法");
}
};
//Lamda表达式
FunInterface l5=(int a,double b)->{
System.out.println("Lamda表达式1");
};
//省略参数类型
FunInterface l6=(a,b)->{
System.out.println("Lamda表达式2");
};
//若方法中只有一条语句,可省略中括号
FunInterface l7=(a,b)-> System.out.println("Lamda表达式2");
//输出查看
l1.did(1,3.5);
l2.did(1,3.5);
l3.did(1,3.5);
l4.did(1,3.5);
l5.did(1,3.5);
l6.did(1,3.5);
l7.did(1,3.5);
}
}
//实现类
class Lamda1 implements FunInterface{
@Override
public void did(int a,double b) {
System.out.println("类实现接口方法");
}
}
输出结果
类实现接口方法
静态内部类实现接口方法
局部内部类实现接口方法
匿名内部类实现接口方法
Lamda表达式1
Lamda表达式2
Lamda表达式2
标签:Lamda,did,接口,println,FunInterface,表达式 来源: https://www.cnblogs.com/ytdnf/p/15772983.html