点我
lambda表达式
概述
- lambda表达式是jdk8新增加的一种语法形式,作用:用于简化匿名内部类的代码写法
使用前提
只能简化函数式接口的匿名内部类
格式
(被重写方法的形参列表)->{
被重写方法的方法体代码
}
demo
package com.xbxaq.lambda_;
public class Test {
public static void main(String[] args) {
Animal animal = new Animal(){
@Override
public void run() {
System.out.println("run......");
}
};
animal.run();
Swimming s = ()->{
System.out.println("swimming......");
};
s.swim();
}
}
interface Swimming{
void swim();
}
abstract class Animal{
public abstract void run();
}
JDk8新特性
省略写法
- 参数类型可以省略不写
- 如果只有一个参数,参数类型可以省略,同时()也可以省略
如果lambda表达式中的方法体只有一行代码,可以省略大括号不写,同时要省略分号
如果这行代码是return语句,也必须去掉return不写
例如:Arrays.setAll(prices, value -> prices[value] * 08 );
静态方法的引用
- 类名::静态方法
- 使用场景:如果某个lambda表达式里只是调用一个静态方法,并且前后参数的形式一致,就可以使用静态方法引用
例如:Arrays.sort(students, CompareByData::compareByAge);
CompareByData-类名,compareByAge-静态方法名
实例方法的引用
- 对象名::实例方法
- 使用场景:如果某个lambda表达式里只是调用一个实例方法,并且前后参数的形式一致,就可以使用实例方法引用
特定类型的方法引用
- 类型::方法
- 使用场景:l如果某个Lambda表达式里只是调用一个实例方法,并且前面参数列表中的第一个参数是作为方法的主调,后面的所有参数都是作为该实例方法的入参的,则此时就可以使用特定类型的方法引用。
构造器的引用
- 类名::new
- 使用场景:如果某个Lambda表达式里只是在创建对象,并且前后参数情况一致,就可以使用构造器引用。
分类:
JAVA
版权申明
本文系作者 @小白学安全 原创发布在 xbxaq.com 站点,未经许可,禁止转载!
评论