Function< T,R >函数的使用
概述
方法名 | 方法说明 |
---|---|
default Function<T,V> andThen(Function<? super R,? extends V> after) | 返回一个组合函数,首先将该函数应用于其输入,然后将 after函数应用于结果。 |
default Function<V,R> compose(Function<? super V,? extends T> before) | 返回一个组合函数,首先将 before函数应用于其输入,然后将此函数应用于结果。 |
static Function<T,T> identity() | 返回一个总是返回其输入参数的函数。 |
R apply(T t) | 将此函数应用于给定的参数。 |
以图文和内容形式讲解代码
定义一个FunctionDemo类
package Demo;
import java.util.ArrayList;
import java.util.function.Function;
import java.util.function.Predicate;
public class FunctionDemo {
public static void main(String[] args) {
// convert("12345",s->Integer.parseInt(s));//该方法只能是字符串的数字
// convert(100,i->String.valueOf(i+566));
convert("566",s->Integer.parseInt(s),i->String.valueOf(i+100));
}
private static void convert(String s, Function<String,Integer> f){
int apply = f.apply(s);
System.out.println(apply);
}
private static void convert(Integer i, Function<Integer,String> f){
String apply = f.apply(i);
System.out.println(apply);
}
//输入一个566字符串返回整型,然后再加一个数变为字符串,并将组合起来输出
private static void convert(String s, Function<String,Integer> f1,Function<Integer,String>f2){
String apply = f1.andThen(f2).apply(s);
System.out.println(apply);
}
}
输出的内容:
666
以例题形式讲解
- 练习
String s=“iKun,30”
请按照我指定的要求进行操作:- 将字符串截取得到数字年份部分
- 将上一步的年龄字符串转换为int类型的数据
- 将上一步的int数据加70,得到一个int结果,返回String型,在控制台输出
请通过Function接口实现函数拼接
定义一个FunctionDemo类
package Demo;
import java.util.ArrayList;
import java.util.function.Function;
import java.util.function.Predicate;
public class FunctionDemo {
public static void main(String[] args) {
String s="iKun,30";
String s1 = s.split(",")[1];
System.out.println(s.split(",")[0]+convert(s1,ss->Integer.parseInt(ss),i->String.valueOf((i+70))));
}
private static String convert(String s,Function<String,Integer> f1,Function<Integer,String> f2){
String apply = f1.andThen(f2).apply(s);
return apply;
}
}
输出的内容为:
iKun100