一、概述
- Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性;
- Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中);
- 能够使用Lambda的依据是必须有相应的函数接口(函数接口,是指内部只有一个抽象方法的接口)。
- 更多内容阅读Java基础(十六) 回调函数。
// 1. 不需要参数,返回值为 5
() -> 5
// 2. 接收一个参数(数字类型),返回其2倍的值
x -> 2 * x
// 3. 接受2个参数(数字),并返回他们的差值
(x, y) -> x – y
// 4. 接收2个int型整数,返回他们的和
(int x, int y) -> x + y
// 5. 接受一个 string 对象,并在控制台打印,不返回任何值(看起来像是返回void)
(String s) -> System.out.print(s)
二、具体使用
语法一:()->{}
无参数时,直接这么写
Runnable run = () -> System.out.println("Hello World");// 1
有一个参数时,直接 参数名 -> {}
View.OnClickListener listener = view -> System.out.println("button clicked");//2
有多个参数时,只需要在()里写上参数名字就可以
View.OnFocusChangeListener listener = (view, b) -> {};
语法二:::(两个英文冒号)
RequestTask task1 = (args1, args2, args3) -> LambdaTest.getData(args1,args2,args3);
RequestTask task2 = LambdaTest::getData;
person -> person.getAge();
Person::getAge