再美不及姑娘你
又见西风上碧树

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"

2.将此字符串的数字年龄数据分割出来,并转化为int 类型

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);
    }
}
posted on 2022-05-13 14:17  再美不及姑娘你  阅读(327)  评论(0编辑  收藏  举报