国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java 8 新特性之Lambda表達(dá)式

這篇具有很好參考價(jià)值的文章主要介紹了Java 8 新特性之Lambda表達(dá)式。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。


函數(shù)式編程(Functional Programming)是把函數(shù)作為基本運(yùn)算單元,函數(shù)可以作為變量,可以接收函數(shù),還可以返回函數(shù)。歷史上研究函數(shù)式編程的理論是Lambda演算,所以我們經(jīng)常把支持函數(shù)式編程的編碼風(fēng)格稱為L(zhǎng)ambda表達(dá)式。

在Java中使用Lambda表達(dá)式的前提:需要是函數(shù)接口。

函數(shù)接口

接口中只存在一個(gè)需要被實(shí)現(xiàn)的抽象方法。

即便該接口中存在默認(rèn)方法與靜態(tài)方法,與Object中也存在的抽象方法(如equal等),畢竟所有實(shí)現(xiàn)的子類肯定繼承自O(shè)bject,只要只存在一個(gè)需要被實(shí)現(xiàn)的方法就算函數(shù)接口。
:JDK1.8新特性:接口中可以存在默認(rèn)實(shí)現(xiàn)的方法(default修飾)與靜態(tài)方法(必須有方法體)。

下面的接口也屬于函數(shù)接口

package interfaces;
@FunctionalInterface
public interface MyInterface {
    /*
     * JDK1.8 新特性:接口中可以存在默認(rèn)實(shí)現(xiàn)的方法(default修飾)與靜態(tài)方法(必須有方法體)。
     *
     */
    // 唯一要手動(dòng)實(shí)現(xiàn)的方法
    int compare(int a, int b);
    // Object的方法,畢竟實(shí)現(xiàn)類都是Object的子類,都已經(jīng)默認(rèn)實(shí)現(xiàn)了equals方法
    boolean equals(Object obj);
    // Object的方法,畢竟實(shí)現(xiàn)類都是Object的子類,都已經(jīng)默認(rèn)實(shí)現(xiàn)了toString方法
    String toString();

    public static void a(){
        System.out.println("我是接口中的靜態(tài)方法a");
    }
    public static void b(){
        System.out.println("我是接口中的靜態(tài)方法b");
    }
    default void c(){
        System.out.printf("我是接口中的默認(rèn)方法c");
    }
    default void d(){
        System.out.printf("我是接口中的默認(rèn)方法d");
    }

}

Lambda表達(dá)式書(shū)寫(xiě)

多個(gè)形參

參數(shù)類型可以省略,如果沒(méi)有形參,小括號(hào)也可以省略

(s1, s2) -> {
    return s1.compareTo(s2);
}

只有一行代碼(可省略return與括號(hào))

(s1, s2) -> s1.compareTo(s2)

方法引用

方法引用也是java8的新特性之一, 可以直接引用已有Java類或?qū)ο蟮姆椒ɑ驑?gòu)造器。方法引用與lambda表達(dá)式結(jié)合使用,可以進(jìn)一步簡(jiǎn)化代碼。簡(jiǎn)化前提:方法引用,是指如果某個(gè)方法簽名和接口恰好一致,就可以直接傳入方法引用。

除了方法名外,方法參數(shù)一致,返回類型相同,因此,我們說(shuō)兩者的方法簽名一致,可以直接把方法名作為L(zhǎng)ambda表達(dá)式傳入

使用前提

  • 引用處必須是函數(shù)式接口
  • 被引用的方法必須已經(jīng)存在
  • 被引用方法的形參和返回值必須和抽象方法保持一致
  • 被引用方法的功能要滿足當(dāng)前需求

常見(jiàn)函數(shù)接口文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-815847.html

  • 接收一個(gè)任意類型參數(shù),返回一個(gè)任意類型參數(shù)。
java.util.function Interface Function<T,R>
  • 接收一個(gè)任意類型參數(shù),不返回參數(shù)。
java.util.function Interface Consumer<T>
  • 不接收任何參數(shù),返回一個(gè)任意類型參數(shù)。
java.util.function Interface Supplier<T>
  • 接收一個(gè)任意類型參數(shù),返回一個(gè)布爾類型參數(shù)。
java.util.function Interface Predicate<T>

到了這里,關(guān)于Java 8 新特性之Lambda表達(dá)式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Java8新特性1——函數(shù)式接口&lambda表達(dá)式

    注:以下內(nèi)容基于Java 8,所有代碼都已在Java 8環(huán)境下測(cè)試通過(guò) 目錄: Java8新特性1——函數(shù)式接口lambda表達(dá)式 Java8新特性2——方法引用 Java8新特性3——Stream 如果在一個(gè)接口中, 有且只有一個(gè)抽象方法 ,則該接口被稱為函數(shù)式接口。如: 注: 可以在接口前使用 @FunctionalInt

    2024年02月10日
    瀏覽(48)
  • 【Java系列】JDK 1.8 新特性之 Lambda表達(dá)式

    【Java系列】JDK 1.8 新特性之 Lambda表達(dá)式

    Lambda是一個(gè)匿名函數(shù),我們可以將Lambda表達(dá)式理解為一段可以傳遞的代碼(將代碼像數(shù)據(jù)一樣傳遞)。使用它可以寫(xiě)出簡(jiǎn)潔、靈活的代碼。作為一種更緊湊的代碼風(fēng)格,使java語(yǔ)言表達(dá)能力得到提升。 結(jié)果: ?19:43:39.303 [main] INFO com.chen.test.JAVA8Features.Demo01 - 我是沒(méi)有使用Lambda表

    2024年02月22日
    瀏覽(26)
  • Java—JDK8新特性—Lambda表達(dá)式【內(nèi)含思維導(dǎo)圖】

    Java—JDK8新特性—Lambda表達(dá)式【內(nèi)含思維導(dǎo)圖】

    目錄 JDK8新特性 2.Lambda表達(dá)式 思維導(dǎo)圖 2.1?什么是Lambda表達(dá)式 2.2 為什么使用Lamdba表達(dá)式 2.3 Lambda表達(dá)式基本語(yǔ)法 2.4 類型推斷 2.5 Lambda練習(xí) 2.6 Lambda常用場(chǎng)景 ????????官網(wǎng)提供網(wǎng)址:JDK 8 Features ????????Lamdba是一個(gè) 匿名函數(shù) ,可以把Lamdba表達(dá)式理解為是一段可以傳遞的

    2024年02月03日
    瀏覽(27)
  • Java 8及以上新特性:Lambda表達(dá)式、Stream API、Optional類與接口默認(rèn)方法(四)

    目錄 一、接口默認(rèn)方法 1.1 概念解析: 1.2 應(yīng)用場(chǎng)景: 1.3 使用注意事項(xiàng): 1.4 使用示例: 二、結(jié)論 1.1 總結(jié)Java 8及以上版本四大新特性的重要意義與價(jià)值: 1.2 鼓勵(lì)讀者積極學(xué)習(xí)并運(yùn)用這些新特性: 1.3 對(duì)未來(lái)Java版本可能引入的新特性進(jìn)行展望: 1.1 概念解析: 接口默認(rèn)方法

    2024年04月13日
    瀏覽(30)
  • java學(xué)習(xí)路程之篇三、進(jìn)階知識(shí)、面向?qū)ο蟾呒?jí)、接口新特性、代碼塊、內(nèi)部類、Lambda表達(dá)式、窗體、組件、事件

    概述 生成值類型響應(yīng)式數(shù)據(jù) 通過(guò) .value 值修改 生成對(duì)象和數(shù)組類型的響應(yīng)式對(duì)象選用 reactive 方式比較好 html JavaScript 概述 reactive 方法根據(jù)傳入的對(duì)象,創(chuàng)建返回一個(gè)深度響應(yīng)式對(duì)象。響應(yīng)式對(duì)象看起來(lái)和傳入的對(duì)象一樣。但是,響應(yīng)式對(duì)象屬性值改動(dòng),不管層級(jí)有多深,都

    2024年02月16日
    瀏覽(21)
  • 進(jìn)階JAVA篇- Lambda 表達(dá)式與 Lambda 表達(dá)式的省略規(guī)則

    進(jìn)階JAVA篇- Lambda 表達(dá)式與 Lambda 表達(dá)式的省略規(guī)則

    目錄 ? ? ? ? 1.0 什么是 Lambda 表達(dá)式? ? ? ? ? 1.1 既然跟匿名內(nèi)部類相關(guān),先來(lái)回顧匿名內(nèi)部類。 ? ? ? ? ?1.2 Lambda 表達(dá)式與匿名內(nèi)部類之間的關(guān)系。 ? ? ? ? 1.3 函數(shù)式接口 ? ? ? ? 1.4 在具體代碼中來(lái)操作一下 ? ? ? ? 2.0?Lambda 表達(dá)式省略規(guī)則 ??????? ?Lambda 表達(dá)

    2024年02月08日
    瀏覽(29)
  • Java- Lambda表達(dá)式

    目錄 一、Lambda簡(jiǎn)介 二、Lambda使用前提 三、Lambda語(yǔ)法 1.操作符 a.\\\"-\\\" ?b.\\\"::\\\" 2.格式? a.無(wú)參數(shù) b.有參數(shù) 四、Lambda演化過(guò)程 五、Lambda實(shí)現(xiàn)排序 Lambda 表達(dá)式,也可稱為閉包,它是推動(dòng) Java 8 發(fā)布的最重要新特性。Lambda 允許把函數(shù)作為一個(gè)方法的參數(shù)(函數(shù)作為參數(shù)傳遞進(jìn)方法中)

    2024年02月03日
    瀏覽(28)
  • Java Lambda表達(dá)式

    1.1 函數(shù)式編程思想概括 在數(shù)學(xué)中,函數(shù)就是有輸入量、輸出量的一套計(jì)算方案,也就是“拿數(shù)據(jù)做操作” 面向?qū)ο笏枷霃?qiáng)調(diào)“必須通過(guò)對(duì)象的形式來(lái)做事情” 函數(shù)式思想則盡量忽略面

    2024年02月07日
    瀏覽(42)
  • Java Lambda 表達(dá)式

    Java Lambda 表達(dá)式

    ??wei_shuo的個(gè)人主頁(yè) ??wei_shuo的學(xué)習(xí)社區(qū) ??Hello World ! Java Lambda 表達(dá)式是 Java 8 引入的一種函數(shù)式編程特性,它是一種輕量級(jí)的匿名函數(shù),允許我們將函數(shù)作為方法的參數(shù)進(jìn)行傳遞。Lambda 表達(dá)式可以理解為是一種簡(jiǎn)潔的方式來(lái)表示可傳遞的代碼塊,它可以替代傳統(tǒng)的匿名內(nèi)

    2024年02月08日
    瀏覽(34)
  • Lambda表達(dá)式(JAVA)

    Lambda表達(dá)式(JAVA)

    注:如果沒(méi)有學(xué)過(guò) 匿名內(nèi)部類 和 接口 不推薦往下看。 (parameters) - expression 或 (parameters) -{ statements; } parameters:表示參數(shù)列表; -:可理解為“被用于”的意思; expression:表示一條語(yǔ)句; statements:表示多條語(yǔ)句。 Lambda可以理解為:Lambda就是匿名內(nèi)部類的簡(jiǎn)化。 lambda表達(dá)式

    2024年02月08日
    瀏覽(28)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包