Lambda表达式
提示:本文主要介绍Java中的Lambda表达式的写法
一、Lambda表达式是什么
Lambda表达式是Java8增加的一种语言新特性;lambda表达式允许通过表达式来代替功能接口。类似于方法,它具有方法体,参数列表;用来实现方法的功能。
值得注意的是,Lambda表达式只适用于“函数式接口”;
函数式接口定义:一个接口有且只有一个抽象方法 。
/**
* @author Una
* @date 2022/7/8 14:18
* @description:函数式接口
*/
@FunctionalInterface
public interface Function {
void test();//抽象方法,没有方法体
}
二、Lambda表达式的语法
基本语法:
(parameters) -> expression
(parameters) ->{ statements; }
Lambda表达式由三部分组成:
1.paramaters:类似方法中的参数列表,这里的参数是函数式接口里的参数。当只有一个参数时可以省略掉圆括号。
2.->:可理解为“被用于”的意思
3.方法体:可以是表达式也可以代码块,是函数式接口里方法的实现。
// 1. 不需要参数,返回值为 2
()->2
// 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)
三、Lambda表达式的使用
为了方便使用,首先创建一个函数式接口
/**
* @author Una
* @date 2022/7/9 14:31
* @description:
*/
@FunctionalInterface
public interface FunctionTwo {
int getInt(int a);//返回值类型为int
}
在main方法中使用
**
* @author Una
* @date 2022/7/8 14:03
* @description:
*/
//函数式接口(功能接口):一个接口有且只有一个抽象方法
public class LambdaTest {
public static void main(String[] args) {
Function function=()->{
System.out.println(0);;
};
FunctionTwo functionTwo=(int a)->{
return a;
};
System.out.println(functionTwo.getInt(2));
System.out.println(functionTwo.getInt(90));
function.test();
}
}
运行结果
总结
不使用Lambda表达式的情况下,一个类只能继承一个函数式接口,并且实现其中方法,但是通过Lambda表达式,我们可以在一个类中实现多个函数式接口中的方法,大大地提高了我们敲代码的效率,需要注意的是,Lambda表达式只适用于函数式接口。