Java lambda表达式中形式参数的规则是什么?
Lambda表达式类似于具有参数,body和return 类型的方法。它也可以称为匿名函数 (没有名称的方法)。
在lambda表达式中使用形式参数时,我们需要遵循一些规则。
如果功能接口的抽象方法是零参数 方法,则箭头(->)的左侧必须使用空 括号。
如果功能接口的抽象方法是单参数方法,则括号 不是必需的。
如果功能接口的抽象方法是多 参数 方法,则必须使用括号 。形式参数以逗号分隔, 并且可以与相应功能接口的顺序相同。
形式参数的提及类型不是强制性的。如果我们没有提到形式参数的类型,那么它的类型可以由编译器从相应的Target Type中确定。
示例
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!!!