函式式介面
函式式介面指的是:有且僅有一個抽象方法,但是可以有多個非抽象方法的介面(介面默認方法),
1 @FunctionalInterface注解
該注解標記一個介面為函式式介面,
對于標注了這個注解的介面,編譯器會強制檢查該介面是否有且僅有一個抽象方法,否則會報錯,
即使不使用該注解,只要滿足函式式介面的定義,就是一個函式式介面
2 與Lambda運算式結合
函式式介面可以被隱式轉換為Lambda運算式,
如果有一個方法使用函式式介面作為引數,那么就可以使用Lambda進行傳參,
比如執行緒中的Runable介面:
//匿名內部類寫法
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("內部類寫法");
}
}).start();
//lambda 寫法
new Thread(() -> System.out.println("lambda寫法")).start();
3 常用的函式式介面
JDK 1.8 之前已有的函式式介面
java.lang.Runnable
java.util.concurrent.Callable
java.util.Comparator
JDK 1.8 新增加的函式介面
//java.util.function包下
Consumer<T>
//消費者,使用已經準備資料
Function<T,R>
//輸入一個或者兩個不同或者相同的值轉為另一個值
Predicate<T>
//輸入一個或者兩個不同或者相同的值總是輸出boolean
Supplier<T>
//供應者,生產資料
//,,,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/143906.html
標籤:Java
