java8 lambda 使用 与 functional interface 与 function 类

java 8 中的 function 类 属于 lamda表达式的一种,它定义好了一些接口,可以直接来调用,比较方便。

若不使用 java 自带的 function 类,在定义好接口后,再用 lamda 表达式来表达 functional interface 中的函数。


举例:

import java.util.function.Function;
import java.util.function.Predicate;

public class HelloWorld {
	
		// functional interface
	@FunctionalInterface
	interface StringMapper{
		int map(String str);
	}
	
	public static void main(String[] args){
		StringMapper mapper=(String str)->str.length();
		System.out.println(mapper.map("chen"));
		
		// Function 
		Function square1=(x)->x*x;
		System.out.println(square1.apply(5));
		
		
		// chaining three functions
		Function chainedFunction = ((Function)(x -> x * x))
				.andThen(x -> x + 1)
				.andThen(x -> x * x);
		System.out.println(chainedFunction.apply(3L));
		
		// predictates
		Predicate greaterThanTen=x->x>10;
		System.out.println(greaterThanTen.test(15));
	}

}



输出:

4

25
100
true

你可能感兴趣的:(java)