return语句不是lambda表达式中的表达式。我们必须用大括号({})括住语句。但是,我们不必将void方法调用括在大括号中。方法的返回类型,其中return语句中使用的lambda表达式必须是函数接口。
public class LambdaReturnTest1 { interface Addition { int add(int a, int b); } public static Addition getAddition() { return (a, b) -> a + b; //Lambda表达式 return 语句 } public static void main(String args[]) { System.out.println("a和b的相加是: " + getAddition().add(20, 50)); } }
输出结果
a和b的相加是: 70
public class LambdaReturnTest2 { public static void main(String args[]) { Thread th = new Thread(getRunnable()); th.run(); } public static Runnable getRunnable() { return() -> { //Lambda表达式返回语句 System.out.println("Lambda表达式返回语句"); }; } }
输出结果
Lambda表达式返回语句