Java 中 Lambda 表达式中形式参数的规则是什么?
Lambda 表达式类似于具有**参数**、**主体**和**返回类型**的方法。它也可以称为**匿名函数**(没有名称的方法)。
在 Lambda 表达式中使用形式参数时,我们需要遵循一些规则。
- 如果函数接口的抽象方法是**零参数**方法,则箭头 (->) 的**左侧**必须使用**空括号**。
- 如果函数接口的抽象方法是**单参数**方法,则**括号**不是必须的。
- 如果函数接口的抽象方法是**多参数**方法,则**括号**是必须的。形式参数是**逗号分隔**的,并且可以与相应的函数接口中的顺序相同。
- 提及**形式参数**的类型不是必须的。如果我们没有提及形式参数的类型,则编译器可以从相应的**目标类型**确定其类型。
示例
interface Message {
String hello(String message, String name, Gender gender);
}
enum Gender {
MALE, FEMALE
}
public class LambdaFormalParameterTest {
public static void main(String args[]) {
Message message = (String msg, String name, Gender gender) -> { // lambda expression
if(gender == Gender.MALE) {
return "Hello Mr " + name + ", " + msg;
} else {
return "Hello Ms " + name + ", " + msg;
}
};
System.out.println(message.hello("Good Morning!!!", "Adithya", Gender.MALE));
System.out.println(message.hello("Good Morning!!!", "Ambica", Gender.FEMALE));
}
}输出
Hello Mr Adithya, Good Morning!!! Hello Ms Ambica, Good Morning!!!
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP