java.util.function.Function是一个功能接口,其功能方法(单个抽象方法)是R apply(T t)Function接口表示采用单个参数T并返回结果R的操作。

示例#1

以下示例说明如何使用Lambda表达式使用Function接口的apply()方法。

文件:FunctionExample1.java -

package com.yiibai.tutorial.lambda;

import java.util.function.Function;

/**
 * @author yiibai
 */
public class FunctionExample1 {
    public static void main(String[] args) {
        Function<Integer, String> function = (t) -> {
            if (t % 2 == 0) {
                return t+ " is even number";
            } else {
                return t+ " is odd number";
            }
        };

        System.out.println(function.apply(5));
        System.out.println(function.apply(8));
    }
}

执行上面示例代码,得到以下结果:

5 is odd number
8 is even number

示例#2

以下示例显示如何使用Lambda表达式使用Function接口的默认方法(andThen()compose())。

文件:FunctionExample2.java -

package com.yiibai.tutorial.lambda;

import java.util.function.Function;

/**
 * @author yiibai
 */
public class FunctionExample2 {
    public static void main(String[] args) {

        Function<Integer, Integer> function1 = t -> (t - 5);
        Function<Integer, Integer> function2 = t -> (t * 2);

        //Using andThen() method
        int a=function1.andThen(function2).apply(50);
        System.out.println(a);

        //Using compose function
        int c=function1.compose(function2).apply(50);
        System.out.println(c);
    }
}

执行上面示例代码,得到以下结果:

90
95