Java Functional Interface

Java Functional Interface 定義了唯一抽象方法的接口,除了隱含 Object 的公共方法,稱之為 Single Abstract Method – SAM ,搭配 Lambda 語法,用來表示接口的實例, Functional Interface Java 提供 Consumer 、 Predicate 、 Function 、 Supplier 等接口應用,增加了範例及各種接口的操作方法,透過單元測試來驗證產出結果。

Functional Interface Learning Java

提供基本程式設計方法的新特性,目的是使程式碼更佳易讀、簡潔與直接,功能接口是確保只包含一個抽象方法的接口,使用 @FunctionalInterface 的註釋來表示,但是可以包含任意數量的預設方法和靜態方法, Java Functional Interface Course 單獨測試一個程式、過程或方法,進行正確性驗證的測試。

原有功能接口

Java 8 之前已有定義的功能接口。

@FunctionalInterface
public interface Runnable {
    public abstract void run();
}

@FunctionalInterface
public interface Callable<V> {
    V call() throws Exception;
}

public interface Comparable<T> {
    public int compareTo(T o);
}
    
public interface ActionListener extends EventListener {
    public void actionPerformed(ActionEvent e);
}

新定義功能接口

Java 8 在 java.util.function 中定義了幾組類型的功能接口以及針對基本資料類型的子接口。

@FunctionalInterface
public interface Predicate<T> {
    boolean test(T t);
}

@FunctionalInterface
public interface Consumer<T> {
    void accept(T t);
}

@FunctionalInterface
public interface Function<T, R> {
    R apply(T t);
}
            
@FunctionalInterface
public interface Supplier<T> {
    T get();
}

Java Functional Interface Tutorial