Java Function 接口及代码示例

表示接受一个参数并产生结果的函数的接口

初见版本

1.8

定义

@FunctionalInterface public interface Function<T,R>

参数

参数类型参数名称参数描述
类型参数T输入到函数的类型
类型参数R从函数返回的结果的类型

说明

该接口要求提供一个参数, 并返回一个值. 所以其 lambda 实现如下:

(s) -> {return doSomething(s);}

这是一个函数接口, 其函数方法是 apply(Object)

注意事项

这是一个函数式接口, 因此可以用作 lambda 表达式或方法引用的赋值目标.

示例

使用 Function 接口的示例

package com.yi21.function;

import java.util.function.Function;

public class Yi21Function {

    public static void main(String[] args) {

        Function<String, String> hello = new Function<>() {
            @Override
            public String apply(String t) {
                return "Hello, " + t;
            }
        };

        callFunction(hello, "阿文");
        //指定 lambda 参数类型的调用方式
        callFunction((String s) -> { return "Hello, " + s;}, "阿武");
        //不指定 lambda 参数的的调用方式
        callFunction((s) -> { return "Hello, " + s;}, "阿斌");
        
    }

    public static void callFunction(Function<String, String> fun, String t) {
        System.out.println(fun.apply(t));
    }
    
}

执行结果为 :

Hello, 阿文
Hello, 阿武
Hello, 阿斌