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