使用 Lambda 取代 Android 中的匿名類
Lambda是第十一個(gè)希臘字母,大寫Λ,小寫λ,額,跑題了…Lambda表達(dá)式 是Java8的新特性之一:
- Lambda表達(dá)式
- 函數(shù)式接口
- 流API
- 默認(rèn)方法
- 新的Date
- Time API
Lambda表達(dá)式 取代了匿名類 ,取消了模板,允許用函數(shù)式風(fēng)格編寫代碼。
由于最近接觸了RxJava,遇到了Lambda,立馬就喜歡上了~所以就學(xué)習(xí)了一下.
本文主要介紹一下Lambda在Android中替代匿名類的部分使用場(chǎng)景.
在Android中使用Lambda
gradle-retrolambda
A gradle plugin for getting java lambda support in java 6, 7 and android
在Android中使用我們需要使用這個(gè)插件,按照配置配置完就行.
實(shí)戰(zhàn)使用
由于Lambda 可以取代匿名類,所以我們先來挑幾個(gè)匿名類練練手.
這里先簡(jiǎn)單的提及一下Lambda的語法:() -> {}咋一看可能覺得這個(gè)什么鬼啊?看不懂啊!
不急,看幾個(gè)例子先~
設(shè)置監(jiān)聽事件
Android中我們?cè)O(shè)置監(jiān)聽一般這么寫:
mFab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
doSomething();
}
});
這么寫AS會(huì)提示說匿名類new View.OnClickListener()能被Lambda代替:

提示
那么用Lambda可以如何寫呢?
mFab.setOnClickListener(v->doSomething());
看到了么?
整個(gè)匿名內(nèi)部類被v->doSomething()給代替了.
是不是非常簡(jiǎn)單?
Ps: 本例子中的`v`代表onClick傳遞的參數(shù)v,參數(shù)不能省略,但是可以隨意命名.
實(shí)現(xiàn)Runnable
在Android中我們起個(gè)線程一般這么寫:
new Thread(new Runnable() {
@Override
public void run() {
doSomething();
}
}).start();
而使用Lambda表達(dá)式的話可以這么寫:
new Thread(() -> doSomething()).start();
另外實(shí)例化Runnable成員變量也可以這么寫:
Runnable runnable = ()->doSomething();
看完這兩個(gè)例子是否對(duì)Lambda感興趣了呢?后續(xù)我還會(huì)繼續(xù)學(xué)習(xí),有興趣的請(qǐng)繼續(xù)關(guān)注~
- Kotlin基礎(chǔ)教程之伴生對(duì)象,getter,setter,內(nèi)部,局部,匿名類,可變參數(shù)
- java 中使用匿名類直接new接口詳解及實(shí)例代碼
- Java中匿名類的兩種實(shí)現(xiàn)方式
- java 內(nèi)部類(匿名類,匿名對(duì)象,靜態(tài)內(nèi)部類)詳解及實(shí)例
- PHP7匿名類用法分析
- 全面了解Java中的內(nèi)部類和匿名類
- 深入講解C#編程中嵌套類型和匿名類型的定義與使用
- 詳細(xì)解讀C++編程中的匿名類類型和位域
- ASP.NET中實(shí)現(xiàn)根據(jù)匿名類、datatable、sql生成實(shí)體類
- Java通過匿名類來實(shí)現(xiàn)回調(diào)函數(shù)實(shí)例總結(jié)
相關(guān)文章
替換so文件來動(dòng)態(tài)替換Flutter代碼實(shí)現(xiàn)詳解
這篇文章主要為大家介紹了替換so文件來動(dòng)態(tài)替換Flutter代碼實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
詳解Android中Fragment的兩種創(chuàng)建方式
本篇文章主要介紹了Android中Fragment的兩種創(chuàng)建方式,具有一定的參考價(jià)值,有興趣的可以了解一下。2016-12-12
Android Flutter實(shí)現(xiàn)五種酷炫文字動(dòng)畫效果詳解
animated_text_kit這一動(dòng)畫庫(kù)有多種文字動(dòng)畫效果,文中將利用它實(shí)現(xiàn)五種酷炫的文字動(dòng)畫:波浪涌動(dòng)效果、波浪線跳動(dòng)文字組、彩虹動(dòng)效、滾動(dòng)廣告牌效果和打字效果,需要的可以參考一下2022-03-03
淺析Android手機(jī)衛(wèi)士關(guān)閉自動(dòng)更新
保存數(shù)據(jù)的四種方式,網(wǎng)絡(luò),廣播提供者,SharedPreferences,數(shù)據(jù)庫(kù)。接下來通過本文給大家介紹android手機(jī)衛(wèi)士關(guān)閉自動(dòng)更新的相關(guān)知識(shí),感興趣的朋友一起學(xué)習(xí)吧2016-04-04

