Lambda表达式
Java Lambda语法
使用lambda表达式的一般语法是
( Parameters:参数 ) -> { Body:主体,返回的数据 }
显式的lambda表达式:
public class LambdaTest { public static void main(String[] args) { MyIntegerCalculator myIntegerCalculator = (Integer s1) -> s1 * 2; System.out.println("1- Result x2 : " + myIntegerCalculator.calcIt(5)); } } interface MyIntegerCalculator { public Integer calcIt(Integer s1); }
隐式的lambda表达式:
public class LambdaTest { public static void main(String[] args) { MyIntegerCalculator myIntegerCalculator = ( s1) -> s1 * 2; System.out.println("1- Result x2 : " + myIntegerCalculator.calcIt(5)); } } interface MyIntegerCalculator { public Integer calcIt(Integer s1); }
1.省略参数类型:可以选择省略lambda表达式中的参数类型。
在lambda表达式 (int x, int y) -> { return x + y; }
声明的参数类型。
我们可以安全地重写lambda表达式,省略参数类型
(x, y) -> { return x + y; }
注:如果我们选择省略参数类型,我们必须省略所有参数的类型。
2.单参数:对于单个参数lambda表达式,我们可以省略括号,因为我们省略了参数类型。
lambda表达式 (String msg) -> {System.out.println(msg);}
省略参数类型:(msg) -> {System.out.println(msg);}
单参数:msg -> {System.out.println(msg);}
3.无参数:对于没有参数的lambda表达式,我们仍然需要括号。
() -> { System.out.println("hi"); } 返回值为:hi