Java的Lambda表达式和函数接口

Java的Lambda表达式和函数接口

下面主要将四个方面,并会给出具体的例子

  1. 函数接口
  2. lambda表达式
  3. 使用Lambda表达式作为函数接口参数
  4. 使用方法引用或构造器作为函数接口参数

1.函数接口

函数式接口(Functional Interface)就是一个有且仅有一个抽象方法的接口

函数式接口可以被隐式转换为 lambda 表达式。

Lambda 表达式和方法引用(实际上也可认为是Lambda表达式)上。

如定义了一个函数式接口如下:

@FunctionalInterface //该注解只是显示的标注了接口用是一个函数接口,并强制编译器进行更严格的检查,如果不是就会报错。但也如果保证该接口是一个函数式接口也也可以不加该注解。
interface GreetingService 
{
   
    void sayMessage(String message);
}

函数式接口可以对现有的函数友好地支持 lambda。

2.lambda表达式

Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。

Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。

使用 Lambda 表达式可以使代码变的更加简洁紧凑。

lambda 表达式的语法格式如下:

(parameters) -> expression
或 
(parameters) ->{ statements; }

组成格式即:

  1. (数据类型 参数名,数据类型 参数名…):用来向表达式主体传递接口方法需要的参数。在编写Lambda表达式时**,可以省略参数的数据类型,后面的表达式主体会自动进行校对和匹配**。同时,如果只有参数,则可以省略括号()
  2. -> : 表示lambda表达式箭牌,用来指向参数数据指向,不能省略,且必须用英文符号。
  3. {表达式主体}:由单个表达式或语句块组成的主体,本质就是接口中抽象方法的具体实现如果表达式主体只有一条语句,那么可以省略包含主体的大括号。另外,在lambda表达式主体中允许有返回值,当只有一条return语句时,也可以省略return关键字

lambda表达式多用于实现函数接口作为方法参数。

3.使用Lambda表达式实现函数接口

举一个例子

package learn;
import java.util.*
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值