package day11FunctionalInterface;
import java.util.function.Function;
/*
练习:自定义函数模型拼接
题目
请使用Function进行函数模型的拼接,按照顺序需要执行的多个函数操作为:
String str = "赵丽颖,20";
分析:
1. 将字符串截取数字年龄部分,得到字符串;
Function<String,String> "赵丽颖,20"->"20"
2. 将上一步的字符串转换成为int类型的数字;
Function<String,Integer> "20"->20
3. 将上一步的int数字累加100,得到结果int数字。
Function<Integer,Integer> 20->120
*/
public class FunctionTest02 {
/*
定义一个方法
参数传递包含姓名和年龄的字符串
参数再传递3个Function接口用于类型转换
*/
public static int returnNum(String str,Function<String,String> fun1,Function<String,Integer> fun2,Function<Integer,Integer> fun3){
//使用andThen方法把三个转换组合到一起
return fun1.andThen(fun2).andThen(fun3).apply(str);
}
public static void main(String[] args) {
//实现代码:
//定义一个字符串
/*String str = "赵丽颖,20";
//调用change方法,参数传递字符串和3个Lambda表达式
int num = returnNum(str,(String s)->{
//"赵丽颖,20"->"20"
return s.split(",")[1];
},(String s)->{
//"20"->20
return Integer.parseInt(s);
},(Integer i)->{
//20->120
return i + 100;
});*/
//Lamdba表达式优化:
String str = "赵丽颖,20";
int num = returnNum(str,s->s.split(",")[1],s->Integer.parseInt(s),i->i + 100);
System.out.println(num);
}
}
自定义函数模型拼接Function执行多个函数操作-函数式接口篇
最新推荐文章于 2022-12-11 10:00:00 发布
关键词由CSDN通过智能技术生成