成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

JAVA Lambda表達(dá)式

Cheng_Gang / 1589人閱讀

摘要:語言是強(qiáng)類型面向?qū)ο蟮恼Z言,所以必須提供一種數(shù)據(jù)類型作為表達(dá)式的返回值類型符合中函數(shù)格式的定義符合面向?qū)ο笠?guī)則,所以最終表達(dá)式要有一個(gè)映射成對象的過程。定一個(gè)函數(shù)式接口我們在接口里定義了一個(gè)沒有參數(shù)返回值的抽象方法。

在JAVA中,“Lambda 表達(dá)式”(Lambda expression)是一個(gè)抽象方法的實(shí)現(xiàn)。這個(gè)抽象方法必須是在接口中聲明的,而且實(shí)現(xiàn)類只需要實(shí)現(xiàn)這一個(gè)抽象方法,我們稱這種接口為函數(shù)式接口。Lambda表達(dá)式就是函數(shù)式接口的實(shí)現(xiàn),來完成對數(shù)據(jù)的處理。

基本函數(shù)的格式

JAVA函數(shù)通常是我們類中定義的行為,格式如下:

修飾符 返回類型 函數(shù)名(參數(shù)列表){
    語句塊
    return 返回值;
}

修飾符:函數(shù)的可見性,決定函數(shù)的使用范圍

返回類型:函數(shù)的輸出信息,與return配合使用

函數(shù)名:函數(shù)標(biāo)識(shí)

參數(shù)列表:函數(shù)的輸入信息

語句塊:函數(shù)執(zhí)行的操作

這就是函數(shù)的基本格式。
代碼中函數(shù)名,返回類型是一定要有的,其他的可有可無。
所以代碼中最簡單的函數(shù)定義格式如下:

返回類型 函數(shù)名();
Lambda表達(dá)式格式

我們說Lambda表達(dá)式是一個(gè)匿名函數(shù),那我們來看一下Lambda表達(dá)式的格式。

(參數(shù)列表) -> {語句塊}

參數(shù)列表:函數(shù)的輸入信息

->: Lambda表達(dá)式關(guān)鍵符(也可以理解成關(guān)鍵字)

語句塊:函數(shù)執(zhí)行的操作

“->”是必須有的,我們來看下最簡單的Lambda表達(dá)式結(jié)構(gòu):

() -> {}

Lambda表達(dá)式是一個(gè)表達(dá)式,程序中被作為一個(gè)值來使用。JAVA語言是強(qiáng)類型面向?qū)ο蟮恼Z言,所以必須提供一種數(shù)據(jù)類型作為Lambda表達(dá)式的返回值類型、符合JAVA中函數(shù)格式的定義、符合面向?qū)ο笠?guī)則,所以最終Lambda表達(dá)式要有一個(gè)映射成JAVA對象的過程。

函數(shù)式接口

函數(shù)式接口是用來完成Lambda表達(dá)式映射成JAVA對象的一種接口,確切的說把接口中僅存的一個(gè)抽象方法和Lambda表達(dá)式綁定并完成對象的實(shí)例化。

那么接口是如何與Lambda表達(dá)式建立類型關(guān)系的?

接口的抽象方法。下面舉例說明。

定一個(gè)函數(shù)式接口

/**
 * @author Stephen Yue
 */
public interface Nothing {
    void doNothing();
}

我們在接口里定義了一個(gè)沒有參數(shù)、返回值的抽象方法。

接口我們定義好了,需要我們定義接口的實(shí)現(xiàn)方式。我們選取Lambda表達(dá)式來完成這個(gè)實(shí)現(xiàn)。

// 指定接口中方法的實(shí)現(xiàn)過程并創(chuàng)建對象
Nothing nothing = () -> {};
nothing.doNothing();

給Nothing接口中doNothing方法指定了一個(gè)空實(shí)現(xiàn)的Lambda表達(dá)式。即沒有參數(shù)、沒有返回值、什么都不做的一個(gè)空實(shí)現(xiàn)。所以執(zhí)行之后沒有任何結(jié)果。我們改一下實(shí)現(xiàn)方式。

Nothing nothing = () -> {
        System.out.println("hello Lambda!");
    };
nothing.doNothing();

新的Lambda表達(dá)式實(shí)現(xiàn)同樣符合接口中抽象方法定義的要求,不過程序執(zhí)行完,會(huì)在控制臺(tái)輸出:hello Lambda!

總結(jié)

Lambda表達(dá)式的出現(xiàn),提供了新的接口實(shí)現(xiàn)方式。接口中抽象方法名字是Lambda表達(dá)式的標(biāo)識(shí)符,接口中參數(shù)類型對應(yīng)Lambda表達(dá)式的參數(shù)類型,接口中返回類型對應(yīng)Lambda表達(dá)式返回類型,Lambda表達(dá)式的語句塊來完成抽象方法的邏輯實(shí)現(xiàn)。

Lambda表達(dá)式的優(yōu)點(diǎn):

簡碼

面向函數(shù)式編程(也可以理解面向接口編程)

閉包

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/70750.html

相關(guān)文章

  • 深入淺出 Java 8 Lambda 達(dá)式

    摘要:在支持一類函數(shù)的語言中,表達(dá)式的類型將是函數(shù)。匿名函數(shù)的返回類型與該主體表達(dá)式一致如果表達(dá)式的主體包含一條以上語句,則表達(dá)式必須包含在花括號(hào)中形成代碼塊。注意,使用表達(dá)式的方法不止一種。 摘要:此篇文章主要介紹 Java8 Lambda 表達(dá)式產(chǎn)生的背景和用法,以及 Lambda 表達(dá)式與匿名類的不同等。本文系 OneAPM 工程師編譯整理。 Java 是一流的面向?qū)ο笳Z言,除了部分簡...

    wdzgege 評論0 收藏0
  • Java 8 Lambda 達(dá)式詳解

    摘要:表達(dá)式簡介表達(dá)式是一個(gè)匿名函數(shù)對于而言并不很準(zhǔn)確,但這里我們不糾結(jié)這個(gè)問題。如果表達(dá)式的正文有一條以上的語句必須包含在大括號(hào)代碼塊中,且表達(dá)式的返回值類型要與匿名函數(shù)的返回類型相同。 版權(quán)聲明:本文由吳仙杰創(chuàng)作整理,轉(zhuǎn)載請注明出處:https://segmentfault.com/a/1190000009186509 1. 引言 在 Java 8 以前,若我們想要把某些功能傳遞給某些方...

    haoguo 評論0 收藏0
  • 轉(zhuǎn) | Java8初體驗(yàn)(一)lambda達(dá)式語法

    摘要:初體驗(yàn)下面進(jìn)入本文的正題表達(dá)式。接下來展示表達(dá)式和其好基友的配合。吐槽一下方法引用表面上看起來方法引用和構(gòu)造器引用進(jìn)一步簡化了表達(dá)式的書寫,但是個(gè)人覺得這方面沒有的下劃線語法更加通用。 感謝同事【天錦】的投稿。投稿請聯(lián)系 tengfei@ifeve.com 本文主要記錄自己學(xué)習(xí)Java8的歷程,方便大家一起探討和自己的備忘。因?yàn)楸救艘彩莿倓傞_始學(xué)習(xí)Java8,所以文中肯定有錯(cuò)誤和理解偏...

    Lucky_Boy 評論0 收藏0
  • Java Lambda達(dá)式

    摘要:表達(dá)式的主要作用就是代替匿名內(nèi)部類的煩瑣語法。從這點(diǎn)來看,表達(dá)式的代碼塊與匿名內(nèi)部類的方法體是相同的。與匿名內(nèi)部類相似的是,由于表達(dá)式訪問了局部變量,該局部變量相當(dāng)于與一個(gè)隱式的修飾,因此不允許對局部變量重新賦值。 函數(shù)式接口 函數(shù)式接口(Functional Interface)就是一個(gè)只有一個(gè)抽象方法(可以包含多個(gè)默認(rèn)方法或多個(gè)static方法)的普通接口,可以被隱式轉(zhuǎn)換為lamb...

    lewif 評論0 收藏0
  • Java Lambda 達(dá)式(又名閉包 (Closure)/ 匿名函數(shù) ) 筆記

    摘要:表達(dá)式又名閉包匿名函數(shù)筆記根據(jù)終于在中引入了表達(dá)式。函數(shù)式接口要介紹中表達(dá)式的實(shí)現(xiàn),需要知道什么是函數(shù)式接口。但同樣需要保證外部的自由變量不能在表達(dá)式中被改變。 Java Lambda 表達(dá)式(又名閉包 (Closure)/ 匿名函數(shù) ) 筆記 根據(jù) JSR 335, Java 終于在 Java 8 中引入了 Lambda 表達(dá)式。也稱之為閉包或者匿名函數(shù)。 showImg(https...

    fou7 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<