此接口是一个转换型接口
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+"");
}
}