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 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告