Function<T,R>:常用的两个方法
R apply(T t):将此函数应用于给定的参数
default<V>Function andThen(Function after):返回一个组合函数,首先将该函数应用于输入,然后将after函数应用于结果
Function<T,R>接口通常用于对参数进行处理,转换(处理逻辑由Lambda表达式实现),然后返回一个新的值
package Demo0513;
import java.util.function.Function;
public class FunctionDemo {
    public static void main(String[] args) {
        //调用strConvertInt方法
        strConvertInt("123",s->Integer.parseInt(s));//Lambda表达式写法
        strConvertInt("456",Integer::parseInt);//方法引用写法
        ////调用intConcertStr方法
        intConcertStr(123,i->String.valueOf(i+566));
        //调用convert方法
        convert("123",s->Integer.parseInt(s),i->String.valueOf(i+566));
    }
    //定义一个方法,把一个字符串转换为int类型,并输出
    private static void strConvertInt(String s, Function<String,Integer>fc){
        Integer i = fc.apply(s);
        System.out.println(i);
    }
    //定义一个方法,把一个int类型的数据加上一个整数后转换为String类型并输出
    private static void intConcertStr(Integer i,Function<Integer,String>fc){
        String s = fc.apply(i);
        System.out.println(s);
    }
    //定义一个方法,把一个字符串转换为int类型后加上一个整数转换为字符串,并输出
    private static void convert(String s,Function<String,Integer>fc,Function<Integer,String>fc1){
        String ss = fc.andThen(fc1).apply(s);
        System.out.println(ss);
    }
}
练习:
1.创建字符串 String s="最美不过姑娘你,18"
3.将int 数据加18,得到一个int类型的结果,输出
4.使用Function接口实现函数拼接
package Demo0513;
import java.util.function.Function;
public class FunctionDemo02 {
    public static void main(String[] args) {
        //定义字符串
        //String s="最美不过姑娘你,18";
        //调用方法
        convert("最美不过姑娘你,18",s->Integer.parseInt(s.split(",")[1])+18);
    }
    //定义方法
    private static void convert(String s, Function<String,Integer>fc){
        Integer i = fc.apply(s);
System.out.println(i);
    }
}
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号