目錄
- 前言
- 1. 基本知識
- 2. Demo
前言
Java的基本知識推薦閱讀:
- java框架 零基礎從入門到精通的學習路線 附開源項目面經等(超全)
- Spring框架從入門到學精(全)
1. 基本知識
@FunctionalInterface
是 Java 8 引入的一個注解,用于標記一個接口為函數式接口
函數式接口是只包含一個抽象方法的接口,可以有多個默認方法或靜態方法,通常用于 lambda 表達式和方法引用
- 標記接口為函數式接口,明確接口的設計意圖,使代碼更易讀,便于他人理解接口的用途
- 編譯器會確保被標記的接口只有一個抽象方法。如果接口有多于一個抽象方法,編譯器會報錯,從而避免接口被錯誤地使用
2. Demo
基本的使用法則如下:
定義函數式接口以及使用lambda
@FunctionalInterface
interface MyFunctionalInterface {void myMethod();
}public class FunctionalInterfaceDemo {public static void main(String[] args) {MyFunctionalInterface func = () -> System.out.println("Hello, Functional Interface!");func.myMethod();}
}
多個默認方法和靜態方法
@FunctionalInterface
interface MyFunctionalInterface {void myMethod();// 默認方法default void defaultMethod() {System.out.println("This is a default method.");}// 靜態方法static void staticMethod() {System.out.println("This is a static method.");}
}public class FunctionalInterfaceDemo {public static void main(String[] args) {MyFunctionalInterface func = () -> System.out.println("Hello, Functional Interface!");func.myMethod();func.defaultMethod();MyFunctionalInterface.staticMethod();}
}
為了進一步說明此注解的主要性:(編譯檢查)
加上注解:
給一個實際的Demo例子如下:
// 定義函數式接口
@FunctionalInterface
interface CorrectFunctionalInterface {void singleMethod();// 可以有默認方法default void defaultMethod() {System.out.println("This is a default method.");}// 可以有靜態方法static void staticMethod() {System.out.println("This is a static method.");}
}// 具體使用
public class FunctionalInterfaceDemo {public static void main(String[] args) {// 使用 lambda 表達式實現 singleMethodCorrectFunctionalInterface func = () -> System.out.println("Hello from singleMethod!");// 調用 singleMethodfunc.singleMethod();// 調用默認方法func.defaultMethod();// 調用靜態方法CorrectFunctionalInterface.staticMethod();}
}
截圖如下: