java提供的函數式接口放置在java.util.function 下
函數式接口 |
參數類型 |
返回類型 |
用途 |
Consumer<T> 消費型接口 |
T |
void |
對類型爲T的對象應用操作,包含方法 : void accept(T t) |
Supplier<T> 供給型接口 |
無 |
T |
返回類型爲T的對象,包含方法 : T get() |
Function<T, R> 函數型接口 |
T |
R |
對類型爲T的對象應用操作,並返回結果。結果是R類型的對象,包含方法 : R apply(T t) |
Predicate<T> 斷定型接口 |
T |
boolean |
確定類型爲T的對象是否滿足某約束,並返回boolean 值。包含方法 : boolean test(T t) |
消費型接口
/**
* 01 Interface Consumer<T> 消費型接口 (一個入參,無返回值)
* 表示接受單個輸入參數並且不返回結果的操作。 與大多數其他功能接口不同, Consumer預期通過副作用進行操作。
* 這是一個functional interface的功能方法是accept(Object) 。
*/
Consumer consumer =x-> System.out.println("hello "+x);
//控制檯輸出 “hello PangHao”
consumer.accept("PangHao");
供給型接口
/**
* 02 Interface Supplier<T> 供給型接口
* 代表結果供應商。
* 沒有要求每次調用供應商時都會返回新的或不同的結果。
* 這是一個functional interface的功能方法是get() 。
*/
Supplier supplier=()->"返回一個object對象";
Object o = supplier.get();
// 輸出 “返回一個object對象”
System.out.println(o);
函數型接口
/**
* 03 Interface Function<T,R> 函數型接口
* T - 函數輸入的類型
* R - 函數結果的類型
* 表示接受一個參數併產生結果的函數。
* 這是一個functional interface的功能方法是apply(Object)
*/
Function function= x-> x+"加個字符串";
Object apply = function.apply(3);
//輸出 “3加個字符串”
System.out.println(apply);
斷定型接口
/**
* 04 Interface Predicate<T> 斷定型接口
* 表示一個參數的謂詞(布爾值函數)。
* 這是一個functional interface,其功能方法是test(Object)
* 確定類型爲T的對象是否滿足某約束,並返回boolean 值
*/
Predicate<Integer> predicate=(x)->x>5;
boolean test = predicate.test(9);
// 輸出 true
System.out.println(test);