12.6号知识点
1、Lambda表达式
使用前提:
1. 使用Lambda必须具有接口,且要求接口中有且只有一个抽象方法
2. 使用Lambda必须具有上下文推断
方法的参数或局部变量饿类型必须是Lambda对应的接口类型,才能使用Lambda作为接口的实例
注:有且仅有一个抽象方法的接口,称为函数式接口。
语法:
三部分组成:一些参数,一个箭头,一段代码
标准格式:() -> {代码体}
() 接口中抽象方法的参数列表,没有参数就空着;有参数写参数,多个参数逗号分隔
-> 代表把参数列表传递给后边的方法体
{} 重写接口抽象方法的方法体(代码块)
Lambda表达式:可推导,可省略
(参数列表) :
1. 参数列表中的数据类型可以省略不写
2. 参数列表中的参数如果只有一个,括号和类型都可以不写
{方法体}
1. 如果{}中的代码只有一行,无论是否有返回值,都可以省略({}, return, 分号)
注意:要省略,{}, return, 分号必须一起省略
代码示例:
public static void main(String[] args) {
ExecutorService executorService = Executors.newFixedThreadPool(2);
//使用匿名内部类实现多线程
executorService.submit(new Runnable() {
@Override
public void run() {
System.out.println(Thread.currentThread().getName());
}
});
// 使用lambda表达式实现多线程
executorService.submit(() -> {
System.out.println(Thread.currentThread().getName());
});
}