– Start
点击此处观看本系列配套视频。
函数式编程需要用到大量的函数,这些函数往往非常简答,如果每个函数都需要定义类去实现函数接口,编程体验会非常糟糕,为此 Java 引入了 Lamda 表达式来定义匿名函数,下面是一些简单的例子。
package shangbo.functional.demo4;
import java.util.function.BiFunction;
import java.util.function.IntSupplier;
import java.util.function.IntToLongFunction;
public class App {
private static String hello = "Hello";
public static void main(String[] args) {
// 没有参数
IntSupplier zeroParameter = () -> 1;
System.out.println(zeroParameter.getAsInt());
// 一个参数时,无需括号
IntToLongFunction oneParameter = number -> Long.valueOf(number);
System.out.println(oneParameter.applyAsLong(2));
// 多个参数
BiFunction<String, String, String> nultipalParameter = (p1, p2) -> p1 + " " + p2;
System.out.println(nultipalParameter.apply("Shang", "Bo"));
// 可以指定参数类型
IntToLongFunction parameterType = (int number) -> Long.valueOf(number);
System.out.println(parameterType.applyAsLong(4));
// 多条语句时才需要大括号
// 如果返回值类型和最后一条语句返回类型一致,return 语句也是可选的
BiFunction<String, String, String> body = (p1, p2) -> {
String v = p1 + " " + p2;
return v;
};
System.out.println(body.apply("Shang", "Bo"));
// 也可以访问外部变量和方法
BiFunction<String, String, String> access = (p1, p2) -> {
String v = hello + " " + p1 + " " + p2;
print(v);
return v;
};
access.apply("Shang", "Bo");
}
private static void print(String v) {
System.out.println(v);
}
}
– 更多参见:Java 函数式编程精萃
– 声 明:转载请注明出处
– Last Updated on 2019-05-30
– Written by ShangBo on 2019-05-30
– End