Lambda表达式

2026-08-21 00:24:59

正文

可以用于简化匿名内部类的写法

并且,Lambda表达式只能够简化函数式接口的匿名内部类的写法

什么是函数式接口?

定义:

有且仅有一个抽象方法的接口叫做函数式接口,可以在接口上方加上@FunctionalInterface进行注解

举例

@FunctionalInterface

public interface swim {

public abstract void swimming();

}

就代表一个函数式接口

举例

在之前,假如有一个方法,形参是一个接口的实现类对象,如:

public static void method(swim s){

s.swimming();

}

接口代码:

public interface swim {

public abstract void swimming();

}

我们去调用该方法时,可以采取匿名内部类的方式:

完整代码:

public class Test {

public static void main(String[] args) {

method(new swim() {

@Override

public void swimming() {

System.out.println("我在游泳");

}

});

}

public static void method(swim s){

s.swimming();

}

//定义一个游泳行为的接口

public interface swim {

public abstract void swimming();

}

}

我们发现该接口为函数式接口,调用方法的形参也为swim s,因此可以采用Lambda表达式进行简化书写

method(()->{

System.out.println("我在游泳");

});

完整代码

public class Test {

public static void main(String[] args) {

method(()->{

System.out.println("我在游泳");

});

}

public static void method(swim s){

s.swimming();

}

//定义一个游泳行为的接口

@FunctionalInterface

public interface swim {

public abstract void swimming();

}

}