国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

使用 Lambda 取代 Android 中的匿名類

2019-12-12 05:20:57
字體:
來源:轉載
供稿:網友

Lambda是第十一個希臘字母,大寫Λ,小寫λ,額,跑題了…Lambda表達式 是Java8的新特性之一:

  1. Lambda表達式
  2. 函數式接口
  3. 流API
  4. 默認方法
  5. 新的Date
  6. Time API

Lambda表達式 取代了匿名類 ,取消了模板,允許用函數式風格編寫代碼。

由于最近接觸了RxJava,遇到了Lambda,立馬就喜歡上了~所以就學習了一下.

本文主要介紹一下Lambda在Android中替代匿名類的部分使用場景.

在Android中使用Lambda

gradle-retrolambda

A gradle plugin for getting java lambda support in java 6, 7 and android

在Android中使用我們需要使用這個插件,按照配置配置完就行.

實戰使用

由于Lambda 可以取代匿名類,所以我們先來挑幾個匿名類練練手.

這里先簡單的提及一下Lambda的語法:() -> {}咋一看可能覺得這個什么鬼啊?看不懂啊!

不急,看幾個例子先~

設置監聽事件

Android中我們設置監聽一般這么寫:

mFab.setOnClickListener(new View.OnClickListener() {   @Override   public void onClick(View v) {    doSomething();   }  });

這么寫AS會提示說匿名類new View.OnClickListener()能被Lambda代替:

提示

那么用Lambda可以如何寫呢?

mFab.setOnClickListener(v->doSomething());

看到了么?

整個匿名內部類被v->doSomething()給代替了.

是不是非常簡單?

Ps: 本例子中的`v`代表onClick傳遞的參數v,參數不能省略,但是可以隨意命名.

實現Runnable

在Android中我們起個線程一般這么寫:

new Thread(new Runnable() {   @Override   public void run() {    doSomething();   }  }).start();

而使用Lambda表達式的話可以這么寫:

new Thread(() -> doSomething()).start();

另外實例化Runnable成員變量也可以這么寫:

Runnable runnable = ()->doSomething();

看完這兩個例子是否對Lambda感興趣了呢?后續我還會繼續學習,有興趣的請繼續關注~

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阜城县| 哈尔滨市| 改则县| 普兰店市| 康马县| 博客| 丹棱县| 玛多县| 阿克苏市| 东港市| 千阳县| 恩施市| 庄河市| 伽师县| 苍溪县| 明星| 阳信县| 伊吾县| 托克托县| 屏东县| 嵩明县| 手游| 维西| 玛曲县| 昭苏县| 青海省| 海伦市| 张家口市| 龙海市| 宿迁市| 凭祥市| 婺源县| 绥阳县| 哈巴河县| 育儿| 远安县| 昭苏县| 马山县| 泰来县| 吴忠市| 车致|