Function<T,R>函数的使用

概述

方法名 方法说明 default Function<T,V> andThen(Function<? super R,? extends V> after) 返回一个组合函数,首先将该函数应用于其输入,然后将 after函数应用于结果。 default Function<V,R> compose(Function<? super V,? extends T> before) 返回一个组合函数,首先将 before函数应用于其输入,然后将此函数应用于结果。 static Function<T,T> identity() 返回一个总是返回其输入参数的函数。 R apply(T t) 将此函数应用于给定的参数。

以图文和内容形式讲解代码

定义一个FunctionDemo类

package Demo;

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

public class FunctionDemo {
          
   
    public static void main(String[] args) {
          
   
//        convert("12345",s->Integer.parseInt(s));//该方法只能是字符串的数字
//        convert(100,i->String.valueOf(i+566));
        convert("566",s->Integer.parseInt(s),i->String.valueOf(i+100));

    }
    
    
    
    
    private static void convert(String s, Function<String,Integer> f){
          
   
        int apply = f.apply(s);
        System.out.println(apply);

    }
    
    
    private static void convert(Integer i, Function<Integer,String> f){
          
   
        String apply = f.apply(i);
        System.out.println(apply);
    }
    
    
    //输入一个566字符串返回整型,然后再加一个数变为字符串,并将组合起来输出
    private static void convert(String s, Function<String,Integer> f1,Function<Integer,String>f2){
          
   
        String apply = f1.andThen(f2).apply(s);
        System.out.println(apply);
    }
}

输出的内容: 666

以例题形式讲解

    练习 String s=“iKun,30” 请按照我指定的要求进行操作: 将字符串截取得到数字年份部分 将上一步的年龄字符串转换为int类型的数据 将上一步的int数据加70,得到一个int结果,返回String型,在控制台输出 请通过Function接口实现函数拼接 定义一个FunctionDemo类
package Demo;

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

public class FunctionDemo {
          
   
    public static void main(String[] args) {
          
   
        String s="iKun,30";
        String s1 = s.split(",")[1];
        System.out.println(s.split(",")[0]+convert(s1,ss->Integer.parseInt(ss),i->String.valueOf((i+70))));

    }

    private static String convert(String s,Function<String,Integer> f1,Function<Integer,String> f2){
          
   
        String apply = f1.andThen(f2).apply(s);
        return apply;

    }
}

输出的内容为: iKun100

经验分享 程序员 微信小程序 职场和发展