Java 8新特性 內建函數式介面詳解
Java 8新特性內建函數式介面
在之前的一片博文 Lambda 表達式,提到過Java 8提供的函數式介面。在此文中,將介紹Java 8四個最基本的函數式介面
對於方法的引用,嚴格來講都需要定義一個介面。不管我們如何操作實際上有可能操作的介面只有四種。
Java 8 提供了函數式介面套件java.util.function.*,在該套件下有許多Java 8內建的函數式介面。不過基本上分為四種基本的:
功能型介面 (Function)
將 T 作為輸入,返回 R 作為輸出,他還包含了和其他函數組合的預設方法。
@FunctionalInterface public interface Function<T, R> { R apply(T t); }
範例程式碼
public static void main(String[] args) { // 这里用到了Java8的 方法引用,功能型函数式接口! Function<String,Boolean> function = "Hello Java" :: endsWith; System.out.println(function.apply("Java")); }
消費型介面 (Consumer)
消費型介面 (Consumer)
@FunctionalInterface public interface Consumer<T> { void accept(T t); }
class TestDemo{ //此方法没有返回值,但是有输入参数 public void fun(String str){ System.out.println(str); } } public class TestFunctional { public static void main(String[] args) { TestDemo demo = new TestDemo(); //消费型接口,只有输入参数,没有输出参数 Consumer<String> consumer = demo :: fun; consumer.accept(""); } } <br>
供應型介面(Su
@FunctionalInterface public interface Supplier<T> { T get(); }
斷言型介面(Predicate )
將T 作為輸入,傳回一個布林值作為輸出,該介麵包含多種預設方法來將Predicate 組合成其他複雜的邏輯(與、或、非)。public class TestFunctional { public static void main(String[] args) { //供应商类型接口,只有输出参数,没有输入参数! Supplier<String> supplier = "java 8" :: toUpperCase; System.out.println(supplier.get()); } }
範例程式碼
@FunctionalInterface public interface Predicate<T> { boolean test(T t); }
所以在Java 8中由於存在有以上的四個功能型接口,所以一般很少會由用戶去定義新的函數式接口!
感謝閱讀,希望能幫助大家,謝謝大家對本站的支持!
更多Java 8新特性 內建函數式介面詳解相關文章請關注PHP中文網!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

Java的類上載涉及使用帶有引導,擴展程序和應用程序類負載器的分層系統加載,鏈接和初始化類。父代授權模型確保首先加載核心類別,從而影響自定義類LOA

本文討論了使用咖啡因和Guava緩存在Java中實施多層緩存以提高應用程序性能。它涵蓋設置,集成和績效優勢,以及配置和驅逐政策管理最佳PRA

本文討論了使用JPA進行對象相關映射,並具有高級功能,例如緩存和懶惰加載。它涵蓋了設置,實體映射和優化性能的最佳實踐,同時突出潛在的陷阱。[159個字符]

本文討論了使用Maven和Gradle進行Java項目管理,構建自動化和依賴性解決方案,以比較其方法和優化策略。

本文使用Maven和Gradle之類的工具討論了具有適當的版本控制和依賴關係管理的自定義Java庫(JAR文件)的創建和使用。
