此函數接口相對java8是基礎
僅有一個抽象方法的接口可以稱之為函數式接口,同時在Function接口中你可能看到的不是一個方法,java8的新特性中有一個是接口可以有默認的接口實現。所有compose,andThen,identity三個方法都符合函數式接口的允許范圍。那么他唯一的一個抽象接口是apply。
方法解析
Function<T, R>接口定義
注意:上面有@FunctionalInterface這個注解,此注解用於標注函數接口,如果不符合函數接口的定義標准那么編譯器就會報錯。
有兩個參數,一個是輸入,一個輸出,先這么理解。T輸入 R輸出。
R apply(T t)
輸入參數T,經過該函數處理得到R。也就是將參數應用於這個函數。
<V> Function<V, R> compose(Function<? super V, ? extends T> before)
先來波參數解析吧。
before 這個參數也是一個函數接口。也就是說他可以執行一系列的操作。
那么這個函數的大致作用就是此函數有兩個參數先將傳進來的這個參數傳入到before這個函數里面進行處理一下,然后before這個函數的返回結果再作為一個參數傳遞給外面的這個函數。若before為空,則會拋出異常。
<V> Function<T, V> andThen(Function<? super R, ? extends V> after)
參數結構和以上面的雷同。但是應用方式是相反的。 這個是先將參數應用到外層函數,然后得到的結構再傳入after進行處理得到結果。
<T> Function<T, T> identity()
最后一個是用來返回這個函數的參數。