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);
}
}