JDK8新特性:Lambda表达式规则及用法,方法引用

2023-12-16 05:52:46

目录

Lambda表达式是JDK8新增的一种语法格式

1.作用

2.用法规则:

3.方法引用


Lambda表达式是JDK8新增的一种语法格式

1.作用

简化匿名内部类的代码写法

Lambad用法前提:只能简化函数式接口(一般加有@Funcationallnterface)(有且仅有一个抽象方法@)的匿名内部类

匿名内部类:(本质是对象名的子类对象)? ? :?

? ? ? ? ? ? ? ? ? 对象名 a = new 对象名(){ ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?@Override ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?public void 方法名(){ ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 内容? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }; ? ? ? ? ?

2.用法规则:

Lambda表达式的省略写法(进一步简化Lambda表达式的写法)

1.参数类型可以省略不写

2.如果只有一个参数,参数类型可以省略,同时()也可以省略。

3.如果Lambda表达式中的方法体代码只有一行代码,可以省略大括号不写,同时要省略分号!此时,如果这行代码是return语句,也必须去掉return不写

格式:(被重写方法的形参列表)->{

? ? ? ? ? ? ?被重写方法的方法体代码

? ? ? ? ? ? }

最终简化:?

对象名 a =() ->{
? ? return? 内容
});

最终简化

一个参数下:(对象名,o1?->内容);

两个参数下:(对象名,(o1,o2) ->内容);

3.方法引用

作用:进一步简化Lambda表达式

标志性符号? ::

1.静态方法(static修饰)的引用:只调用一个静态方法,并且前后参数的形式一致

类名 :: 静态方法

2.实例方法的引用:只调用一个实例方法,并且前后参数的形式一致

对象名 ::实例方法

3.特定类型方法的引用:只调用一个实例方法,并且前面参数列表中的第一个参数是作为方法的主调,后面的所有参数都是作为该实例方法的入参的

类型 ::方法

4.构造器引用:如果某个Lambda表达式里只是在创建对象,并且前后参数情况一致

类名 ::new

文章来源:https://blog.csdn.net/qq_61338849/article/details/134912063
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。