java8 Lambda 表達(dá)式

函數(shù)式接口

函數(shù)式接口是指接口中只有一個需要實(shí)現(xiàn)的方法陈肛。
例如Runnable接口:

public interface Runnable {

    /**
     * Starts executing the active part of the class' code. This method is
     * called when a thread is started that has been created with a class which
     * implements {@code Runnable}.
     */
    public void run();
}

Lambda 表達(dá)式

基本格式: (形式參數(shù)) ->{方法體}
如果要創(chuàng)建上面的Runnable實(shí)例米间,我們以前的寫法是:

Runnable r = new Runnable(){
    public void run(){
      System.out.println("線程開始");  
    }
}

使用Lambda寫法:

Runnable r = () -> { System.out.println("線程開始");  }

從上面可以看出挺邀,可以使用 Lambda 表達(dá)式創(chuàng)建一個 Runnable 對象界睁。

作用:對于一個函數(shù)式接口骆姐,使用Lambda表達(dá)式可創(chuàng)建該接口的對象译仗。
問題來了拼弃,為什么使用Lambda格式也能創(chuàng)建一個對象呢搀矫?
因?yàn)長ambda作用的對象是函數(shù)式接口抹沪,而函數(shù)式接口中只定義了一個抽象方法,所以創(chuàng)建該對象只需實(shí)現(xiàn)該方法即可瓤球,要實(shí)現(xiàn)的方法也就可以唯一確定下來融欧,我們只需傳入該方法所需的參數(shù)以及實(shí)現(xiàn),系統(tǒng)就能自動為我們創(chuàng)建該接口對象了卦羡。

形式參數(shù)格式

  • 形式參數(shù)可已有0個或多個噪馏,使用圓括號包裹麦到,如果有多個使用逗號隔開 (arg1 , arg2 , arg3 ...)
  • 形式參數(shù)可以聲明類型,也可不聲明 欠肾。例如:(String arg1 , String arg2 ...) 等價于 (arg1 , arg2 ...)
  • 如果只有一個參數(shù)瓶颠,可省略 圓括號。例如:(arg1) ->{ } 等價于 arg1 ->{ }

方法體格式

  • 方法體是包含在一對花括號里面
  • 如果方法體只有一句刺桃,花括號可省略粹淋。例如 :
Runnable r = () -> { System.out.println("線程開始");  }
Runnable r = () ->  System.out.println("線程開始");  
  • 如果該方法有返回值,在方法體需要返回對應(yīng)的返回值瑟慈。

自定義函數(shù)式接口

public interface MyInterface {
    public void getId(int id); //該接口中只有一個需要實(shí)現(xiàn)的方法
}
//使用Lambda創(chuàng)建該接口的對象
MyInterface interface = (id) ->{ System.out.println("id:"+id) }

在Android Studio 中配置使用Lambda表達(dá)式

1. 搭建環(huán)境

版本:Android Studio 2.1 + jdk 1.8
查看當(dāng)前使用的版本:點(diǎn)擊 **Help -> About **


出現(xiàn)如下界面:


如需升級Android Studio桃移,參考:http://www.reibang.com/p/465b0234142b

2. 配置Gradle文件

如果環(huán)境搭建好,下面通過配置你app模塊下的gradle文件:

android{
  ...
  defaultConfig{
    ...
    jackOptions{    
      enabled true
    }
    ...
  }
  compileOptions{    
    sourceCompatibility JavaVersion.VERSION_1_8    
    targetCompatibility JavaVersion.VERSION_1_8
  }
  ...
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末葛碧,一起剝皮案震驚了整個濱河市借杰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌进泼,老刑警劉巖第步,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異缘琅,居然都是意外死亡粘都,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進(jìn)店門刷袍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來翩隧,“玉大人,你說我怎么就攤上這事呻纹《焉” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵雷酪,是天一觀的道長淑仆。 經(jīng)常有香客問我,道長哥力,這世上最難降的妖魔是什么蔗怠? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮吩跋,結(jié)果婚禮上寞射,老公的妹妹穿的比我還像新娘。我一直安慰自己锌钮,他們只是感情好桥温,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著梁丘,像睡著了一般侵浸。 火紅的嫁衣襯著肌膚如雪旺韭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天掏觉,我揣著相機(jī)與錄音茂翔,去河邊找鬼。 笑死履腋,一個胖子當(dāng)著我的面吹牛珊燎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播遵湖,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼悔政,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了延旧?” 一聲冷哼從身側(cè)響起谋国,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎迁沫,沒想到半個月后芦瘾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡集畅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年近弟,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挺智。...
    茶點(diǎn)故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡祷愉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出赦颇,到底是詐尸還是另有隱情二鳄,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布媒怯,位于F島的核電站订讼,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏扇苞。R本人自食惡果不足惜欺殿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望杨拐。 院中可真熱鬧祈餐,春花似錦擂啥、人聲如沸哄陶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽屋吨。三九已至蜒谤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間至扰,已是汗流浹背鳍徽。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留敢课,地道東北人阶祭。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像直秆,于是被迫代替她去往敵國和親濒募。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容