Java Lambda 表达式

– 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 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 body = (p1, p2) -> {
			String v = p1 + " " + p2;
			return v;
		};
		System.out.println(body.apply("Shang", "Bo"));
		
		// 也可以访问外部变量和方法
		BiFunction 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

你可能感兴趣的:(Java,SE)