当前位置: java基础教程 > 13-函数式接口、lambda表达式 > 阅读正文

Function 函数式接口

2021.2.18.   429 次   1042字

此接口是一个转换型接口

1.导包
import java.util.function.Function;
2.方法

1.此接口包含一个抽象方法 R apply(T t)

此接口是双列泛型,即 Function<T,R> 根据 T 类型得到 R 类型

import java.util.function.Function;
public class Demo {
    /*
        定义一个方法
        方法的参数传递一个字符串类型的整数
        方法的参数传递一个Function接口,泛型使用<String,Integer>
        使用Function接口中的方法apply,把字符串类型的整数,转换为Integer类型的整数
     */
    public static void change(String s, Function<String,Integer> fun){
        int in = fun.apply(s);//自动拆箱 Integer->int
        System.out.println(in);
    }

    public static void main(String[] args) {
        //定义一个字符串类型的整数
        String s = "1234";
        //调用change方法,传递字符串类型的整数,和Lambda表达式,把字符串类型的整数,转换为Integer类型的整数返回
        change(s,str->Integer.parseInt(str));
    }
}

2.接口的默认方法 andThen

import java.util.function.Function;
public class Demo {
    /*
        定义一个方法
        参数串一个字符串类型的整数
        参数再传递两个Function接口
            一个泛型使用Function<String,Integer>
            一个泛型使用Function<Integer,String>
     */
    public static void change(String s, Function<String,Integer> fun1,Function<Integer,String> fun2){
        String ss = fun1.andThen(fun2).apply(s);
        System.out.println(ss);
    }

    public static void main(String[] args) {
        //定义一个字符串类型的整数
        String s = "123";
        //调用change方法,传递字符串和两个Lambda表达式,把字符串转换为整数+10,把整数转换为字符串
        change(s,str->Integer.parseInt(str)+10,i->i+"");
    }
}

本篇完,还有疑问?

加入QQ交流群:11500065636 IT 技术交流群