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!!!
广告