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

更新于: 2020-07-11

299 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始
广告