Lambda表达式
-
作用:用于简化匿名内部类的代码写法
其只能简化函数式接口的匿名内部类
什么是函数式接口?
- 有且仅有一个抽象方法的接口
- 上面可能带有**@Functionallnterface**的注解
Lambda表达式的省略写法
- 参数类型可以省略不写
- 如果只有一个参数,参数类型可以省略,同时()也可以省略
- 如果Lambda表达式中的方法体只有一行代码,可以省略大括号不写,同时要省略分号。此时如果这行代码是return语句,也必须去掉return不写。
方法引用::(进一步简化Lambda表达式书写)
- 静态方法的引用
- 类名::静态方法
- 使用场景:如果某个Lambda表达式里只是调用一个静态方法,并且前后参数的形式一致,就可以使用静态方法引用
- 实例方法的引用
- 对象名::实例方法
- 使用场景:如果某个Lambda表达式里只是调用一个实例方法,并且前后参数的形式一致,就可以使用实例方法引用。
- 特定类型方法的引用
- 类型::方法
- 使用场景:如果某个Lambda表达式里只是调用一个实例方法,并且前面参数列表中的第一个参数是作为方法的主调,后面的所有参数都是作为该实例方法的入参的,则此时就可以使用特定类型的方法引用
- 构造器引用
- 类名::new
- 使用场景:如果某个Lambda表达式里只是在创建对象,并且前后参数情况一致,就可以使用构造器引用