您可以从 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