1.6 @FunctionalInterface注解
生活随笔
收集整理的這篇文章主要介紹了
1.6 @FunctionalInterface注解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在學習 Lambda 表達式時,我們提到如果接口中只有一個抽象方法(可以包含多個默認方法或多個 static 方法),那么該接口就是函數式接口。@FunctionalInterface 就是用來指定某個接口必須是函數式接口,所以 @FunInterface 只能修飾接口,不能修飾其它程序元素。
函數式接口就是為 Java 8 的 Lambda 表達式準備的,Java 8 允許使用 Lambda 表達式創建函數式接口的實例,因此
Java 8 專門增加了 @FunctionalInterface。
例如,如下程序使用 @FunctionalInterface 修飾了函數式接口。
@FunctionalInterface public interface FunInterface {static void print() {System.out.println("C語言中文網");}default void show() {System.out.println("我正在學習C語言中文網Java教程");}void test(); // 只定義一個抽象方法 }編譯上面程序,可能絲毫看不出程序中的 @FunctionalInterface 有何作用,因為 @FunctionalInterface 注解的作用只是告訴編譯器檢查這個接口,保證該接口只能包含一個抽象方法,否則就會編譯出錯。
@FunctionalInterface 注解主要是幫助程序員避免一些低級錯誤,例如,在上面的 FunInterface 接口中再增加一個抽象方法 abc(),編譯程序時將出現如下錯誤提示:
“@FunctionInterface”批注無效;FunInterface不是functional接口
總結
以上是生活随笔為你收集整理的1.6 @FunctionalInterface注解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.5 @SafeVarargs注解
- 下一篇: 1.7 元注解作用及使用