您可以从 Java lambda 表达式中返回值,就像从方法中返回值一样。您只需在 lambda 函数体中添加一个 return 语句,如下所示:
(param) -> { System.out.println("param: " + param); return "return value"; }
如果您的 lambda 表达式只是计算返回值并将其返回,您可以用更简短的方式指定返回值。例如:
(a1, a2) -> { return a1 > a2; }
你可以这样写:
(a1, a2) -> a1 > a2;
然后,编译器会计算出表达式 a1 > a2 是 lambda 表达式的返回值(因此称为 lambda 表达式 —— 因为表达式会返回某个值)。
该示例使用 @FunctionalInterface 自定义一个函数式接口,然后通过 lambda 表达式实例化该函数式接口,且返回一个字符串。例如:
package com.hxstrive.jdk8.lambda; /** * Java8 lambda 表达式 * @author hxstrive.com */ public class LambdaDemo2 { @FunctionalInterface public interface MyFunctionalInterface { // 抽象方法 String say(String message); } public static void main(String[] args) { MyFunctionalInterface my = (message) -> { return "Hello " + message; }; // 调用 say() 方法 System.out.println(my.say("Lambda")); } }
运行示例,输出如下:
Hello Lambda