什么是函數式接口?自定義一個函數式接口


什么是函數式接口?自定義一個函數式接口

  • 1、函數式接口是有且只有一個抽象方法的接口

  • 2、Java中擁有大量函數式接口,如:java.lang.Runnable

  • 3、JDK8后提供了一系列新的函數式接口,位於java.util.function

image

lambda語法格式:

  • (參數列表) -> 實現語句。

  • 參數列表:使用逗號分隔參數,參數類型可省略,單參數括號可省略。

  • 實現語句:單行直接寫,多行用{}包裹。

  • 注意:lambda表達式只能實現有且只有一個抽象方法的接口,這種接口java稱為“函數式接口”。

案例:
定義只有一個抽象方法的“函數式接口”

@FunctionalInterface
public interface MathOperation {
    float operator(int a, int b);
}

注解:@FunctionalInterface //通知編譯器這是函數式接口,進行抽象方法檢查

傳統方式是要創建一個Addition類繼承這個接口,然后再實現這個接口里的函數,在main函數中再實例化一個Addition對象,調用addition.operate(3,5);才能達到如下一樣的目的。

class ILambdaTest {
    @Test
    void testLambdaOperator() {
        // 標准寫法
        MathOperation add =  (a, b) -> {
            System.out.println("加法運算");
            return a + b;
        };
        // 簡潔寫法
        MathOperation subtruction = (a, b) -> a - b;

        System.out.println("add = " + add.operator(1,3));
        System.out.println("subtruction = " + subtruction.operator(1,3));
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM