日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Java8函數(shù)式接口編程入門,簡(jiǎn)單幾行讓你的代碼更優(yōu)雅

函數(shù)式接口(Functional Interface)就是一個(gè)有且僅有一個(gè)抽象方法,但是可以有多個(gè)非抽象方法的接口。

專注于為中小企業(yè)提供成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)唐河免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了成百上千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

JDK8中新增了一個(gè)很重要的包:java.util.function,在這個(gè)包下的所有接口都是函數(shù)式接口。通過函數(shù)式接口,可以極大的簡(jiǎn)化我們的代碼,讓我們的代碼看起來更簡(jiǎn)潔。

包中的接口雖然多,但是大致可以分為4大類,分別是Consumer(消費(fèi)型)、Supplier(供給型)、Predicate(謂詞型)、Function(功能型)。

函數(shù)式接口雖然看起來很抽象,但是一旦理解了其原理,使用起來還是很簡(jiǎn)單的。

1、Consumer消費(fèi)型

Consumer接口會(huì)接受一個(gè)輸入?yún)?shù),但是不會(huì)有返回結(jié)果,一般用于對(duì)某個(gè)輸入對(duì)象做一些加工操作。

Consumer的一個(gè)經(jīng)典使用場(chǎng)景就是集合的foreach方法了。

ArrayList list = Lists.newArrayList(1, 2, 3, 4, 5);
list.forEach(x -> {
System.out.print(x + ",");
});

點(diǎn)開foreach方法可以看到該方法接受了一個(gè)Consumer action參數(shù)。

ArrayList的foreach實(shí)現(xiàn)

應(yīng)用示例:

2、Supplier供給型

Supplier接口不接受參數(shù),用于生產(chǎn)我們需要的數(shù)據(jù)。

Supplier的應(yīng)用很簡(jiǎn)單,一般用于產(chǎn)生隨機(jī)數(shù),訂單號(hào),工廠生產(chǎn)對(duì)象等等。

3、Predicate謂詞型

Predicate接受一個(gè)輸入?yún)?shù) T,返回一個(gè)布爾值結(jié)果,常用于數(shù)據(jù)的校驗(yàn)。

4、Function功能型

Function的使用也比較廣泛,它接受一個(gè)參數(shù),并且會(huì)對(duì)參數(shù)進(jìn)行計(jì)算加工產(chǎn)生另一個(gè)參數(shù)。

最后再說一下函數(shù)式編程與命令式編程的區(qū)別:

命令式編程就是我們要告訴代碼怎么做,比如要實(shí)現(xiàn)一些功能,那就把這個(gè)功能的詳細(xì)過程通過代碼一行行的寫好。

函數(shù)式編程就是我們要告訴代碼做什么,是一種方法論,說白了就是調(diào)用某個(gè)API去編程。

總得來說呢,函數(shù)式的編程確實(shí)可以簡(jiǎn)化我們的代碼,讓我們以更簡(jiǎn)單的方式去完成某些比較復(fù)雜的功能,但是也有些朋友會(huì)覺得函數(shù)式編程過于抽象,不好理解。

不知道大家在平時(shí)項(xiàng)目中使用函數(shù)式編程的頻率有多少呢?


新聞標(biāo)題:Java8函數(shù)式接口編程入門,簡(jiǎn)單幾行讓你的代碼更優(yōu)雅
文章起源:http://www.5511xx.com/article/djessse.html