您好,登錄后才能下訂單哦!
小編給大家分享一下如何使用Java的方法引用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
??方法引用是用來(lái)直接訪問(wèn)類或者實(shí)例的已經(jīng)存在的方法或者構(gòu)造方法。方法引用提供了一種引用而不執(zhí)行方法的方式,它需要由兼容的函數(shù)式接口構(gòu)成的目標(biāo)類型上下文。計(jì)算時(shí),方法引用會(huì)創(chuàng)建函數(shù)式接口的一個(gè)實(shí)例。
方法引用通過(guò)方法的名字來(lái)指向一個(gè)方法。
方法引用可以使語(yǔ)言的構(gòu)造更緊湊簡(jiǎn)潔,減少冗余代碼。
方法引用使用一對(duì)冒號(hào) :: 。
Java 8 中我們可以通過(guò) :: 關(guān)鍵字來(lái)訪問(wèn)類的構(gòu)造方法,對(duì)象方法,靜態(tài)方法。
類型 | 方法引用 | Lambda表達(dá)式 |
---|---|---|
靜態(tài)方法引用 | 類名::staticMethod | (args) -> 類名.staticMethod(args) |
實(shí)例方法引用 | inst::instMethod | (args) -> inst.instMethod(args) |
對(duì)象方法引用 | 類名::instMethod | (inst,args) -> 類名.instMethod(args) |
構(gòu)建方法引用 | 類名::new | (args) -> new 類名(args) |
為了更好的演示方法引用的使用方法,特引入了基礎(chǔ)代碼。
@Data @ApiModel class DataInfo{ private String name; private String info; private String welcome; public static DataInfo create( Supplier<DataInfo> supplier) { return supplier.get(); } public static void getDataInfo( DataInfo dataInfo) { System.out.println("DataInfo : " + dataInfo.toString()); } public void getWebNameinfo( DataInfo dataInfo) { System.out.println(" WebName " + dataInfo.getName()); } public void getWelcomeInfo() { System.out.println("welcome " + this.toString()); } }
靜態(tài)方法引用:它的語(yǔ)法是Class::static_method
dataInfoList.forEach(DataInfo::getDataInfo);
特定對(duì)象的方法引用:它的語(yǔ)法是instance::method實(shí)例
dataInfoList.forEach( DataInfo.create( DataInfo::new )::getWebNameinfo );
特定類的任意對(duì)象的方法引用:它的語(yǔ)法是Class::method
dataInfoList.forEach(DataInfo::getWelcomeInfo);
構(gòu)造器引用:它的語(yǔ)法是Class::new。
DataInfo dataInfo = DataInfo.create(DataInfo::new);
以上是“如何使用Java的方法引用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。