Java的函數(shù)式接口@FunctionalInterface的使用說明
Java的函數(shù)式接口@FunctionalInterface
我們常用的一些接口Callable、Runnable、Comparator等在JDK8中都添加了@FunctionalInterface注解。
通過JDK8源碼javadoc,可以知道這個(gè)注解有以下特點(diǎn):
1、該注解只能標(biāo)記在"有且僅有一個(gè)抽象方法"的接口上。
2、JDK8接口中的靜態(tài)方法和默認(rèn)方法,都不算是抽象方法。
3、接口默認(rèn)繼承java.lang.Object,所以如果接口顯示聲明覆蓋了Object中方法,那么也不算抽象方法。
4、該注解不是必須的,如果一個(gè)接口符合"函數(shù)式接口"定義,那么加不加該注解都沒有影響。加上該注解能夠更好地讓編譯器進(jìn)行檢查。如果編寫的不是函數(shù)式接口,但是加上了@FunctionInterface,那么編譯器會(huì)報(bào)錯(cuò)。
@FunctionalInterface標(biāo)記在接口上,“函數(shù)式接口”是指僅僅只包含一個(gè)抽象方法的接口。
如果一個(gè)接口中包含不止一個(gè)抽象方法,那么不能使用@FunctionalInterface,編譯會(huì)報(bào)錯(cuò)。
比如下面這個(gè)接口就是一個(gè)正確的函數(shù)式接口:
// 正確的函數(shù)式接口 @FunctionalInterface public interface TestInterface { // 抽象方法 public void sub(); // java.lang.Object中的方法不是抽象方法 public boolean equals(Object var1); // default不是抽象方法 public default void defaultMethod(){ } // static不是抽象方法 public static void staticMethod(){ } }
到此這篇關(guān)于Java的函數(shù)式接口@FunctionalInterface的使用說明的文章就介紹到這了,更多相關(guān)@FunctionalInterface函數(shù)式接口內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于Mybatis中SQL節(jié)點(diǎn)的深入解析
這篇文章主要給大家介紹了關(guān)于Mybatis中SQL節(jié)點(diǎn)的深入解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-03-03在SpringBoot接口中正確地序列化時(shí)間字段的方法
文章主要介紹在 Spring Boot 接口中正確序列化時(shí)間字段的方法,包括 Java 中Date和LocalDateTime類型的區(qū)別,JSON 序列化和請求參數(shù)中時(shí)間字段的處理,如時(shí)間字符串的格式配置、時(shí)間戳的使用及相關(guān)配置,還提到了在 Swagger UI 中的類型設(shè)置,需要的朋友可以參考下2024-11-11SpringBoot實(shí)現(xiàn)動(dòng)態(tài)增刪啟停定時(shí)任務(wù)的方式
在spring?boot中,可以通過@EnableScheduling注解和@Scheduled注解實(shí)現(xiàn)定時(shí)任務(wù),也可以通過SchedulingConfigurer接口來實(shí)現(xiàn)定時(shí)任務(wù),但是這兩種方式不能動(dòng)態(tài)添加、刪除、啟動(dòng)、停止任務(wù),本文給大家介紹SpringBoot實(shí)現(xiàn)動(dòng)態(tài)增刪啟停定時(shí)任務(wù)的方式,感興趣的朋友一起看看吧2024-03-03Java的@Transactional、@Aysnc、事務(wù)同步問題詳解
這篇文章主要介紹了Java的@Transactional、@Aysnc、事務(wù)同步問題詳解,現(xiàn)在我們需要在一個(gè)業(yè)務(wù)方法中插入一個(gè)用戶,這個(gè)業(yè)務(wù)方法我們需要加上事務(wù),然后插入用戶后,我們要異步的方式打印出數(shù)據(jù)庫中所有存在的用戶,需要的朋友可以參考下2023-11-11Mybatis-Plus如何實(shí)現(xiàn)時(shí)間日期的比較
文章主要討論了在使用Mybatis-Plus進(jìn)行數(shù)據(jù)庫查詢時(shí),如何正確處理日期和時(shí)間的比較,作者強(qiáng)調(diào)了使用數(shù)據(jù)庫函數(shù)進(jìn)行比較的重要性,避免了直接將時(shí)間轉(zhuǎn)換為字符串進(jìn)行比較的錯(cuò)誤,同時(shí),作者建議在需要比較天數(shù)時(shí)使用LocalDate2024-11-11