Lambda表达式与内置函数式接口、方法引用

Lambda表达式

1、Lambda表达式使用的前提

Lambda表达式的语法式非常简洁的,但是Lambda表达式不是随随便便使用的,使用时有一个条件要特别注意:

        1、方法的参数或局部变量类型必须为接口才能使用Lambda。

        2、接口有且仅有一个抽象方法(@Functionallnterface:唯一抽象方法的类注解)。

小提示:Lambda表达式项目中常用于Stream流中。

2、Lambda表达式的语法

Lambda省去了面向对象的条条框框,Lambda的标准格式由三部分组成:

(参数列表)->{}

():参数列表

->:连接符 连接的是参数以及方法体。

{}:方法体

例子:

 3、Lambda表达式的省略写法

在Lambda表达式的标准写法基础上,可以使用省略写法的规则为:

        1、小括号内的参数类型可以省略[]

        2、如果小括号内有且仅有一个参数,则小括号可以省略。

        3、如果大括号内有且仅有一个语句,可以 同时省略大括号、return关键字及语句分号。

内置函数式接口

1、四种jdk内置的函数式接口

我们知道使用Lambda表达式的前提是需要有函数式接口,而Lambda表达式使用时不关心接口名,抽象方法名。只关心抽象方法的参数列表和返回值类型。因此为了让我们使用Lambda表达式更加的方便 ,在JDK中提供您了大量常用的函数式接口,大多数无需自己再定义函数式接口,而可以直接使用jdk内置的函数式接口。分为四类。

 2、使用场景

        1、消费型函数式接口Consumer

        适合有参数,但是没有返回值的。

        

         2、供给型函数式接口Supplier

                无参,需要返回值的接口类

                

         3、函数型函数式接口Function<T,K>

                T:参数的泛型           K:返回值的泛型

                

         4、断言型函数式接口Predicate<T>

                T:参数的泛型           boolean:返回值类型

                                

 方法引用

        特殊的Lambda表达式,它是对Lambda表达式的一种简写方式。

1、四种类型的方法引用

        <1>静态方法引用:

                        类名::静态方法       

                Lambda表达式:
                       (参数)->类名.静态方法(参数) 

          当Lambda表达式中方法体,只有一条语句,而这条语句是类名.静态方法。而静态发方法的参数和Lambda的参数一致时。

                举例:

 

        <2>实例方法引用:

                        对象::实例方法

                Lambda表达式:
                        (参数)->对象.实例方法(参数)

        实例方法引用,顾名思义就是调用已经存在的实例的方法,与静态方法引用不同的是类要先实例化,静态方法引用类无需实例化,直接用类 名去调用。

                举例:

 

        <3>对象方法引用:

                        类名::实例方法

                Lambda表达式:

                        (参数1,参数2...)->参数1.实例方法(参数2...)

        若Lambda参数列表中的第一个参数是实例方法的参数调用者,而第二个参数是实例方法的参数时,可以使用对象方法引用。

 

        <4>构造方法引用:

                        类名::new

                Lambda表达式:

                        (参数)->new 类名(参数);

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值