1. 程式人生 > 其它 >常用的函式式介面之Function介面

常用的函式式介面之Function介面

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