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 <T, R>
		Function<Integer,Integer> square1=(x)->x*x;
		System.out.println(square1.apply(5));
		
		
		// chaining three functions
		Function<Long, Long> chainedFunction = ((Function<Long, Long>)(x -> x * x))
				.andThen(x -> x + 1)
				.andThen(x -> x * x);
		System.out.println(chainedFunction.apply(3L));
		
		// predictates
		Predicate<Integer> greaterThanTen=x->x>10;
		System.out.println(greaterThanTen.test(15));
	}

}

输出:

4

25
100
true

    原文作者:心态与做事习惯决定人生高度
    原文地址: https://blog.csdn.net/robert_chen1988/article/details/74783305
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞