Java @FunctionInterface函式式介面使用說明
概述
@FunctionInterface 稱為函式式介面,屬於JDK8新增的特性。常見的一些介面比如Runnable、Callable都新增了該註解。
使用要求
- 標記在介面 Interface 上
- 必須包含一個並且只能有一個抽象方法
- static方法和default方法,都不算抽象方法
- 介面預設繼承Object,顯示實現
例子
先看一個錯誤示例:
@FunctionalInterface
public interface MyInterface {
//第一個抽象方法
void test(int a, int b);
//第二個抽象方法
void test2(int a, int b);
}
編譯報錯:
再來看看正確示例:
@FunctionalInterface
public interface MyInterface {
//靜態方法,不佔用抽象方法的個數
static void staticMethod(){
System.out.println("Statis Method");
}
//預設方法,不佔用抽象方法的個數
default void defaultMethod(){
System.out.println("Default Method");
}
//Object方法,不佔用抽象方法的個數
int hashCode();
//唯一一個抽象方法
void test(int a, int b);
}
@FunctionInterface註解的介面,允許使用Lambda表示式例項化
方式一,構造物件:
public static void main(String[] args) {
MyInterface myInterface = (a, b) -> {
System.out.println("Test Method ====> " + a + "," + b);
};
myInterface.test(10, 15);
}
方式二,作為函式引數傳遞:
public static void main(String[] args) {
test((a, b) -> {
System.out.println("Test Method ====> " + a + "," + b);
}, 5, 10);
}
public static void test(MyInterface myInterface, int a, int b){
myInterface.test(a, b);
}
相關文章
- scapy函式 IP() 使用說明函式
- goldengate常用函式使用說明Go函式
- Less函式說明函式
- sap 函式說明函式
- Java函式式介面Java函式
- PHP 風險函式說明PHP函式
- mysql count函式說明MySql函式
- jQuery - 函式 $.ajaxSetup 的說明和使用jQuery函式
- 成員函式的說明和使用(轉)函式
- Vector容器主要函式說明函式
- memset函式詳細說明函式
- 詳解Java函式式介面Java函式
- Python 閉包函式說明Python函式
- wordpress模板修改及函式說明函式
- Python常用函式及說明Python函式
- java8特性-函式式介面Java函式
- 【彙總】EMQX 函式API、安裝與使用說明MQ函式API
- Java 8 Function 函式介面JavaFunction函式
- apolloxlua標準庫require函式說明UI函式
- Java 函式式介面 lamada 應用Java函式
- 簡析JAVA8函式式介面Java函式
- Java學習隨筆(函式式介面)Java函式
- 函式式介面函式
- 【Java】函式使用Java函式
- Java8之Stream-函式式介面Java函式
- 「Java8系列」神奇的函式式介面Java函式
- Java8的新特性--函式式介面Java函式
- java8 新特性之函式式介面Java函式
- Java8新特性探索之函式式介面Java函式
- 說說函式索引函式索引
- jQuery - 函式 $.extend 和 $.fn.extend 的說明jQuery函式
- Java正規表示式的解釋說明Java
- Oracle分析函式、多維函式和Model函式簡要說明,主要針對BI報表統計Oracle函式
- Java深海拾遺系列(5)---函式式介面Functional InterfaceJava函式Function
- python中encode和decode函式說明Python函式
- php中var_dump()函式的詳解說明PHP函式
- TypeScript 函式介面TypeScript函式
- 函式型介面函式