(String s) -> s.length()
第一个Lambda表达式具有一个String类型的参 数并返回一个int。Lambda没有return语句, 因为已经隐含了return
(Apple a) -> a.getWeight() > 150
第二个Lambda 表达式有一个 Apple 类型的 参数并返回一 个boolean(苹 果的重量是否 超过150克)
(int x, int y) -> {
System.out.println("Result:");
System.out.println(x+y);
}
第三个Lambda表达式具有两个int类型的参 数而没有返回值(void返回)。注意Lambda 表达式可以包含多行语句,这里是两行
() -> 42
第四个Lambda 表达式没有参 数,返回一个 int
(Apple a1, Apple a2) -> a1.getWeight().compareTo(a2.getWeight())
第五个Lambda表达式具有两个Apple类型的 参数,返回一个int:比较两个Apple的重量
基本语法是
(parameters) -> expression
或(请注意语句的花括号)
(parameters) -> { statements; }
测验:Lambda语法 根据上述语法规则,以下哪个不是有效的Lambda表达式? (1) () -> {} (2) () -> "Raoul" (3) () -> {return "Mario";} (4) (Integer i) -> return "Alan" + i; (5) (String s) -> {"IronMan";} 答案:只有4和5是无效的Lambda。 (1) 这个Lambda没有参数,并返回void。它类似于主体为空的方法:public void run() {}。 (2) 这个Lambda没有参数,并返回String作为表达式。 (3) 这个Lambda没有参数,并返回String(利用显式返回语句)。 (4) return是一个控制流语句。要使此Lambda有效,需要使花括号,如下所示: (Integer i) -> {return "Alan" + i;}。 (5)“Iron Man”是一个表达式,不是一个语句。要使此Lambda有效,你可以去除花括号 和分号,如下所示:(String s) -> "Iron Man"。或者如果你喜欢,可以使用显式返回语 句,如下所示:(String s)->{return "IronMan";}。