Java8(二) 函數式接口

函數式接口

函數式接口指的是:有且僅有一個抽象方法,可是能夠有多個非抽象方法的接口(接口默認方法)。java

1 @FunctionalInterface註解

該註解標記一個接口爲函數式接口。ide

對於標註了這個註解的接口,編譯器會強制檢查該接口是否有且僅有一個抽象方法。不然會報錯。函數

即便不使用該註解,只要知足函數式接口的定義,就是一個函數式接口線程

2 與Lambda表達式結合

函數式接口能夠被隱式轉換爲Lambda表達式。code

若是有一個方法使用函數式接口做爲參數,那麼就能夠使用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>
    
//。。。
相關文章
相關標籤/搜索