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