目录
前言
Lambda表达式是JDK8后的一种新语法形式
一、Lambda表达式简化格式
1.简化格式
2.目标类型必须是接口
Lambda表达式只能简化函数式接口的匿名内部类的写法形式
演示:先创建应该抽象类
abstract class Animal { public abstract void run(); }
使用Lambda表达式抽象简化匿名内部类,转换类型必须是接口
把Animal类改成接口
interface Animal { public abstract void run(); }
此时已经编译正常,并且对对象a进行了简化
3.进一步简化
public class Test { public static void main(String[] args) { Animal a = ()->{ System.out.println("狗四条腿跑"); }; go(a); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); go(()->{ System.out.println("狗四条腿跑"); }); } public static void go(Animal animal) { System.out.println("动物开始跑"); animal.run(); System.out.println("动物不跑了"); } }
二、什么是函数接口
1.概念
首先必须是接口,其次接口中只能有一个抽象方法
函数式接口,即适用于函数式编程场景的接口。而Java中的函数式编程体现就是 Lambda,所以函数式接口就是可以适用于Lambda使用的接口
2.@FunctionalInterface注解
@FunctionalInterface //加上此注解就只能是函数式接口,里面只能有一哥抽象方法 interface Animal { public abstract void run(); }
总结
有时我们需要在程序的某处使用一次某个函数,在这时使用lambda函数更加的方便也便于理解。