欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

你真的會(huì)使用Java的方法引用嗎

 更新時(shí)間:2021年08月06日 11:45:06   作者:小阿杰  
這篇文章主要給大家介紹了關(guān)于Java方法引用的相關(guān)資料,方法引用是Java8的新特性,方法引用其實(shí)也離不開(kāi)Lambda表達(dá)式,本文通過(guò)示例代碼介紹的很詳細(xì),需要的朋友可以參考下

前言

Java 8由Oracle公司于2014年3月18日發(fā)布,至今已過(guò)去數(shù)年之久。然而,直到今日仍有許多軟件開(kāi)發(fā)者對(duì)其相關(guān)特性不了解,這可能主要是Java基礎(chǔ)教材更新緩慢的原因。Java 8 方法引用是Java 8的新特性,Java 8出來(lái)已經(jīng)很久了,相信很多伙伴都已經(jīng)在使用了,也有少部分不知道方法引用是怎么使用的,那么本文將帶領(lǐng)大家一起初始Java的方法引用。

方法引用是什么?

  方法引用是用來(lái)直接訪問(wèn)類(lèi)或者實(shí)例的已經(jīng)存在的方法或者構(gòu)造方法。方法引用提供了一種引用而不執(zhí)行方法的方式,它需要由兼容的函數(shù)式接口構(gòu)成的目標(biāo)類(lèi)型上下文。計(jì)算時(shí),方法引用會(huì)創(chuàng)建函數(shù)式接口的一個(gè)實(shí)例。

  • 方法引用通過(guò)方法的名字來(lái)指向一個(gè)方法。
  • 方法引用可以使語(yǔ)言的構(gòu)造更緊湊簡(jiǎn)潔,減少冗余代碼。
  • 方法引用使用一對(duì)冒號(hào) :: 。

方法引用與Lambda表達(dá)式

Java 8 中我們可以通過(guò) :: 關(guān)鍵字來(lái)訪問(wèn)類(lèi)的構(gòu)造方法,對(duì)象方法,靜態(tài)方法。

類(lèi)型 方法引用 Lambda表達(dá)式
靜態(tài)方法引用 類(lèi)名::staticMethod (args) -> 類(lèi)名.staticMethod(args)
實(shí)例方法引用 inst::instMethod (args) -> inst.instMethod(args)
對(duì)象方法引用 類(lèi)名::instMethod (inst,args) -> 類(lèi)名.instMethod(args)
構(gòu)建方法引用 類(lèi)名::new (args) -> new 類(lèi)名(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)方法引用

靜態(tài)方法引用:它的語(yǔ)法是Class::static_method

dataInfoList.forEach(DataInfo::getDataInfo);

實(shí)例方法引用

特定對(duì)象的方法引用:它的語(yǔ)法是instance::method實(shí)例

dataInfoList.forEach( DataInfo.create( DataInfo::new )::getWebNameinfo );

對(duì)象方法引用

特定類(lèi)的任意對(duì)象的方法引用:它的語(yǔ)法是Class::method

 dataInfoList.forEach(DataInfo::getWelcomeInfo);

構(gòu)建方法引用

構(gòu)造器引用:它的語(yǔ)法是Class::new。

DataInfo dataInfo = DataInfo.create(DataInfo::new);

總結(jié)

Java 8 中方法引用,使語(yǔ)言的構(gòu)造更緊湊簡(jiǎn)潔,減少冗余代碼,讓程序員寫(xiě)出高效率、干凈、簡(jiǎn)潔的代碼。

到此這篇關(guān)于Java方法引用的文章就介紹到這了,更多相關(guān)Java方法引用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中Map的computeIfAbsent方法詳解

    Java中Map的computeIfAbsent方法詳解

    這篇文章主要介紹了Java的Map中computeIfAbsent方法詳解,在jdk1.8中Map接口新增了一個(gè)computeIfAbsent方法,這是Map接口中的默認(rèn)實(shí)現(xiàn)該方法是首先判斷緩存Map中是否存在指定的key的值,如果不存在,會(huì)調(diào)用mappingFunction(key)計(jì)算key的value,需要的朋友可以參考下
    2023-11-11
  • IDEA maven項(xiàng)目中刷新依賴的兩種方法小結(jié)

    IDEA maven項(xiàng)目中刷新依賴的兩種方法小結(jié)

    這篇文章主要介紹了IDEA maven項(xiàng)目中刷新依賴的兩種方法小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Google Guava 緩存工具使用詳解

    Google Guava 緩存工具使用詳解

    這篇文章主要介紹了Guava自加載緩存LoadingCache使用指南,通過(guò)這些內(nèi)容介紹,了解了LoadingCache的基本原理和用法,包括如何創(chuàng)建和配置緩存,以及如何結(jié)合Java?8的特性來(lái)優(yōu)化代碼,需要的朋友可以參考下
    2023-12-12
  • 淺談多線程_讓程序更高效的運(yùn)行

    淺談多線程_讓程序更高效的運(yùn)行

    下面小編就為大家?guī)?lái)一篇淺談多線程_讓程序更高效的運(yùn)行。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • 基于Comparator對(duì)象集合實(shí)現(xiàn)多個(gè)條件按照優(yōu)先級(jí)的比較

    基于Comparator對(duì)象集合實(shí)現(xiàn)多個(gè)條件按照優(yōu)先級(jí)的比較

    這篇文章主要介紹了基于Comparator對(duì)象集合實(shí)現(xiàn)多個(gè)條件按照優(yōu)先級(jí)的比較,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • JAVA統(tǒng)計(jì)字符串中某個(gè)字符出現(xiàn)次數(shù)的方法實(shí)現(xiàn)

    JAVA統(tǒng)計(jì)字符串中某個(gè)字符出現(xiàn)次數(shù)的方法實(shí)現(xiàn)

    本文主要介紹了JAVA統(tǒng)計(jì)字符串中某個(gè)字符出現(xiàn)次數(shù)的方法實(shí)現(xiàn),可以循環(huán)使用String的charAt(int index)函數(shù),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11
  • Springboot創(chuàng)建項(xiàng)目的圖文教程(idea版本)

    Springboot創(chuàng)建項(xiàng)目的圖文教程(idea版本)

    這篇文章主要介紹了Springboot創(chuàng)建項(xiàng)目的圖文教程(idea版本),本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Spring5中SpringWebContext方法過(guò)時(shí)的解決方案

    Spring5中SpringWebContext方法過(guò)時(shí)的解決方案

    這篇文章主要介紹了Spring5中SpringWebContext方法過(guò)時(shí)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Java調(diào)用用戶芝麻信用分

    Java調(diào)用用戶芝麻信用分

    這篇文章主要為大家詳細(xì)介紹了Java調(diào)用用戶芝麻信用分,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • 基于Spring Boot DevTools實(shí)現(xiàn)開(kāi)發(fā)過(guò)程優(yōu)化

    基于Spring Boot DevTools實(shí)現(xiàn)開(kāi)發(fā)過(guò)程優(yōu)化

    這篇文章主要介紹了基于Spring Boot DevTools實(shí)現(xiàn)開(kāi)發(fā)過(guò)程優(yōu)化,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09

最新評(píng)論