使用 Lambda 取代 Android 中的匿名類
Lambda是第十一個希臘字母,大寫Λ,小寫λ,額,跑題了…Lambda表達式 是Java8的新特性之一:
- Lambda表達式
- 函數(shù)式接口
- 流API
- 默認方法
- 新的Date
- Time API
Lambda表達式 取代了匿名類 ,取消了模板,允許用函數(shù)式風格編寫代碼。
由于最近接觸了RxJava,遇到了Lambda,立馬就喜歡上了~所以就學習了一下.
本文主要介紹一下Lambda在Android中替代匿名類的部分使用場景.
在Android中使用Lambda
gradle-retrolambda
A gradle plugin for getting java lambda support in java 6, 7 and android
在Android中使用我們需要使用這個插件,按照配置配置完就行.
實戰(zhàn)使用
由于Lambda 可以取代匿名類,所以我們先來挑幾個匿名類練練手.
這里先簡單的提及一下Lambda的語法:() -> {}咋一看可能覺得這個什么鬼啊?看不懂啊!
不急,看幾個例子先~
設(shè)置監(jiān)聽事件
Android中我們設(shè)置監(jiān)聽一般這么寫:
mFab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { doSomething(); } });
這么寫AS會提示說匿名類new View.OnClickListener()能被Lambda代替:
提示
那么用Lambda可以如何寫呢?
mFab.setOnClickListener(v->doSomething());
看到了么?
整個匿名內(nèi)部類被v->doSomething()給代替了.
是不是非常簡單?
Ps: 本例子中的`v`代表onClick傳遞的參數(shù)v,參數(shù)不能省略,但是可以隨意命名.
實現(xiàn)Runnable
在Android中我們起個線程一般這么寫:
new Thread(new Runnable() { @Override public void run() { doSomething(); } }).start();
而使用Lambda表達式的話可以這么寫:
new Thread(() -> doSomething()).start();
另外實例化Runnable成員變量也可以這么寫:
Runnable runnable = ()->doSomething();
看完這兩個例子是否對Lambda感興趣了呢?后續(xù)我還會繼續(xù)學習,有興趣的請繼續(xù)關(guān)注~
- Kotlin基礎(chǔ)教程之伴生對象,getter,setter,內(nèi)部,局部,匿名類,可變參數(shù)
- java 中使用匿名類直接new接口詳解及實例代碼
- Java中匿名類的兩種實現(xiàn)方式
- java 內(nèi)部類(匿名類,匿名對象,靜態(tài)內(nèi)部類)詳解及實例
- PHP7匿名類用法分析
- 全面了解Java中的內(nèi)部類和匿名類
- 深入講解C#編程中嵌套類型和匿名類型的定義與使用
- 詳細解讀C++編程中的匿名類類型和位域
- ASP.NET中實現(xiàn)根據(jù)匿名類、datatable、sql生成實體類
- Java通過匿名類來實現(xiàn)回調(diào)函數(shù)實例總結(jié)
相關(guān)文章
Flutter利用ORM框架管理數(shù)據(jù)庫詳解
使用?ORM?框架最大的好處是簡化了數(shù)據(jù)庫維護的代碼量,使得我們可以專注于業(yè)務(wù)代碼實現(xiàn)。本篇,我們看看如何使用ORM框架管理數(shù)據(jù)庫版本遷移,需要的可以參考一下2023-04-04Android EditText限制輸入字符的方法總結(jié)
這篇文章主要介紹了 Android EditText限制輸入字符的方法總結(jié)的相關(guān)資料,這里提供了五種方法來實現(xiàn)并進行比較,需要的朋友可以參考下2017-07-07Android Notification.Builder通知案例分享
這篇文章主要為大家分享了Android Notification.Builder通知案例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-10-10Flutter onTap中讓你脫穎而出的5條規(guī)則
這篇文章主要為大家介紹了Flutter onTap中讓你脫穎而出的5條規(guī)則,小事情決定了你的熟練程度,這些小細節(jié)的有趣之處在于它們的豐富性2023-11-11Android實現(xiàn)完整游戲循環(huán)的方法
這篇文章主要介紹了Android實現(xiàn)完整游戲循環(huán)的方法,以實例代碼形式較為詳細的分析了Android游戲循環(huán)的實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-10-10Android根據(jù)電話號碼獲得聯(lián)系人頭像實例代碼
這篇文章主要介紹了Android根據(jù)電話號碼獲得聯(lián)系人頭像實例代碼,是Android程序開發(fā)中非常重要的技巧,需要的朋友可以參考下2014-09-09