常用函数式接口_andThen,练习_自定义函数模型拼接

 常用函数式接口_andThen

Function接口中的默认方法andThen:用来进行组合操作

  需求:

    把String类型的123转话为Integer类型,把转化后的结果加10

    把增加之后Integar类型的数据,转化为String类型

分析:
第一次是把string类型转换为了Integer类型
所以我们可以使用Function<string, Integer> fun1
Integer i= fun1.apply("123")+10;
第二次是把Integer类型转换为string类型
所以我们可以使用Function<Integer, String> fun2
String s = fun2.apply(i);
我们可以使用andThen方法,把两次转换组合在一起使用
string s = fun1.andThen(fun2 ).appiy( "123");fun1先调用apply方法,把字符串转换为Integer
fun2再调用apply方法,把Integer转换为字符串

案例:

  

    public static void change(String s , Function<String,Integer>fun){
Integer apply = fun.apply(s);
System.out.println(apply);
}

public static void main(String[] args) {
String s ="1234";
change(s,s1 -> {
return Integer.parseInt(s)+10;
});

}
}

练习_自定义函数模型拼接

题目:

  使用Function进行函数模型的拼接,按照顺序要执行多个函数作为:

  String str=“大傻 , 20”  

分析:
1.将字符串截取数字年龄部分,得到字符串;
Function<string , string> “赵丽颖,20"->"20"

2.将上一步的字符串转换成为int类型的数字;
Function<string , Integer> "26"->20
3.将上一步的int数字累加10o,得到结果int数字。
Function<Integer, Integer> 20->120

案例:

  

    public static int filter(String s, Function<String,String> p1,
Function<String,Integer> p2, Function<Integer,Integer> p3) {
return p1.andThen(p2).andThen(p3).apply(s);
}
public static void main(String[] args) {
String arr ="大傻,女";
int filter = filter(arr, s -> {
return s.split(",")[1];
}, s -> {
return Integer.parseInt(s);
}, s -> {
return s + 100;
});

System.out.println(filter);
}

}

 

posted @ 2022-07-23 16:39  一位程序袁  阅读(130)  评论(0编辑  收藏  举报