Lambda表达式

在Java中,Lambda表达式提供了一种简洁的方式来实现只有一个方法的接口,这类接口被称作函数式接口(Functional Interface)。Lambda表达式于Java 8中被引入,它帮助简化了匿名内部类的写法,让代码更加简洁易读。

1.初始写法

编写发送email信息和Sms信息的代码

这里写了一个发送信息的接口及抽象方法,Email,Sms分别实现里面的抽象方法,主方法通过不同的实例化对象实现不同的信息发送

Lambda表达式_第1张图片

测试结果

Lambda表达式_第2张图片

2.匿名类写法

匿名类(Anonymous Class)是指没有名称的局部内部类,可以用来创建一次性使用的类实例。匿名类通常用于那些简短的类定义,尤其是在只需要使用一次的情况下。匿名类允许你通过直接使用表达式来定义并实例化一个类扩展或者实现接口。

修改主方法,这里实例化了Message接口,采用匿名类的写法,并为声明内部类的名称。

Lambda表达式_第3张图片

3.lambada表达式写法

这里的括号和大括号代表接口抽象方法里的括号,大括号

Lambda表达式_第4张图片

当方法体里只有一个输出语句的时候可以省略大括号,注意去掉语句的分号

Lambda表达式_第5张图片

4.函数式接口,及带参的lambada表达式

函数式接口:在Java中,函数式接口(functional interface)是只有一个抽象方法的接口。由于只有一个抽象方法,它们也被称为SAM(Single Abstract Method)接口。函数式接口的主要用途是提供一个目标类型(target type)给Lambda表达式和方法引用。

修改函数式接口,增加一个参数

Lambda表达式_第6张图片

当只有一个参数的时候可以省略(),如下:

Lambda表达式_第7张图片

你可能感兴趣的:(java)