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() 使用說明函式
- Java函式式介面Java函式
- jQuery - 函式 $.ajaxSetup 的說明和使用jQuery函式
- Python 閉包函式說明Python函式
- PHP 風險函式說明PHP函式
- Vector容器主要函式說明函式
- 詳解Java函式式介面Java函式
- java8特性-函式式介面Java函式
- Java 函式式介面 lamada 應用Java函式
- 【彙總】EMQX 函式API、安裝與使用說明MQ函式API
- Java 8 Function 函式介面JavaFunction函式
- Java學習隨筆(函式式介面)Java函式
- 簡析JAVA8函式式介面Java函式
- python中encode和decode函式說明Python函式
- apolloxlua標準庫require函式說明UI函式
- 函式式介面函式
- Java8之Stream-函式式介面Java函式
- 「Java8系列」神奇的函式式介面Java函式
- Java8的新特性--函式式介面Java函式
- java8 新特性之函式式介面Java函式
- Java8新特性探索之函式式介面Java函式
- java8 函式式介面——Function/Predict/Supplier/ConsumerJava函式Function
- Java深海拾遺系列(5)---函式式介面Functional InterfaceJava函式Function
- java8新特性之函式式介面、lambda表示式、介面的預設方法、方法和建構函式的引用Java函式
- TypeScript 函式介面TypeScript函式
- python3:urllib.request 的主要函式說明Python函式
- JAVA基礎之5-函式式介面的實現Java函式
- Java8新特性-四大核心函式式介面Java函式
- tf.gfile函式和gfile.MakeDirs(FLAGS.train_dir)函式的詳細說明函式AI
- Java中的函數語言程式設計(二)函式式介面Functional InterfaceJava函數程式設計函式Function
- JAVA基礎之四-函式式介面和流的簡介Java函式
- JAVA中的函式介面,你都用過嗎Java函式
- Java常見知識點彙總(④)——虛擬函式、抽象函式、抽象類、介面Java函式抽象
- 恕我直言你可能真的不會java第8篇-函式式介面Java函式
- Java開發筆記(六十二)如何定義函式式介面Java筆記函式
- css樣式說明介紹CSS
- 介面、虛擬函式、純虛擬函式、抽象類函式抽象
- 何時使用函式表示式與函式宣告函式