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