java提供的4種函數(shù)式接口
1、什么是函數(shù)式接口
函數(shù)接口是只有一個(gè)抽象方法的接口,用作 Lambda
表達(dá)式的類型。使用@FunctionalInterface
注解修飾的類,編譯器會(huì)檢測(cè)該類是否只有一個(gè)抽象方法或接口,否則,會(huì)報(bào)錯(cuò)。可以有多個(gè)默認(rèn)方法,靜態(tài)方法。
有且只有一個(gè)抽象方法的接口
場(chǎng)景:
適用于函數(shù)式編程場(chǎng)景(使用lambda
表達(dá)式編程)的接口,函數(shù)式接口可以適用于lambda
使用的接口。
只有確保接口中有且只有一個(gè)抽象方法,java
中的lambda
才能順利推到
2.java提供四種類型的函數(shù)式接口
package day06.java8; /* java提供四種類型的函數(shù)式接口 Function<T,R>, 轉(zhuǎn)換類型,傳入一個(gè)T類型,傳出一個(gè)R類型 Consumer<T> 消費(fèi)型 Supplier<T>,什么都不傳,給返回一個(gè)對(duì)象 Predicate<T> 斷言型,傳入一個(gè)T類,返回?cái)嘌詔rue false ?*/ ? import org.apache.commons.lang3.RandomStringUtils; ? import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Predicate; import java.util.function.Supplier; ? public class Demo04 { ? ? public static void main(String[] args) { ? ? ? ? // Function<T,R>, 轉(zhuǎn)換類型 ? ? ? ? Function<String,Integer> function =str -> str.length(); ? ? ? ? Integer abc = function.apply("abc"); ? ? ? ? System.out.println(abc); ? ? ? ? // Consumer<t> 消費(fèi)型 ? ? ? ? Consumer<String> consumer =str-> System.out.println(str); ? ? ? ? consumer.accept("abc"); ? ? ? ? //Supplier<T>,什么都不傳,給返回一個(gè)對(duì)象 ? ? ? ? // 這里隨機(jī)返回一個(gè)長(zhǎng)度為8的字符串 ? ? ? ? Supplier<String> supplier = ()-> RandomStringUtils.randomAlphanumeric(8); ? ? ? ? String s = supplier.get(); ? ? ? ? System.out.println(s); ? ? ? ? // Predicate<T> 斷言型,傳入一個(gè)T類,返回?cái)嘌詔rue false ? ? ? ? Predicate<String> predicate =str->str.length()>3; ? ? ? ? boolean test = predicate.test("abcd"); ? ? ? ? System.out.println(test); ? ? ? ? } }
到此這篇關(guān)于java提供的4種函數(shù)式接口的文章就介紹到這了,更多相關(guān)java函數(shù)式接口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談MyBatis3 DynamicSql風(fēng)格語(yǔ)法使用指南
這篇文章主要介紹了淺談MyBatis3 DynamicSql風(fēng)格語(yǔ)法使用指南,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03Spring boot連接MySQL 8.0可能出現(xiàn)的問(wèn)題
這篇文章主要給大家介紹了關(guān)于Spring boot連接MySQL 8.0可能出現(xiàn)的問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10JDBC連接數(shù)據(jù)庫(kù)步驟及基本操作示例詳解
這篇文章主要為大家介紹了JDBC連接數(shù)據(jù)庫(kù)步驟及基本操作示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11Java 讀取網(wǎng)絡(luò)圖片存儲(chǔ)到本地并生成縮略圖
用Java做開(kāi)發(fā)經(jīng)常需要處理圖片。本文就來(lái)看一下如何保存圖片到本地并生成縮略圖2021-05-05Java8中使用流方式查詢數(shù)據(jù)庫(kù)的方法
這篇文章主要介紹了Java8中使用流方式查詢數(shù)據(jù)庫(kù)的相關(guān)資料,需要的朋友可以參考下2016-01-01