亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用 Lambda 取代 Android 中的匿名類

 更新時間:2016年09月08日 09:08:26   作者:程序亦非猿  
本文主要介紹使用Lambda 取代 Android 中的匿名類的資料,這里這里了相關(guān)資料及簡單示例代碼幫助大家學習參考此部分的知識,有需要的小伙伴可以參考下

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

  1. Lambda表達式
  2. 函數(shù)式接口
  3. 流API
  4. 默認方法
  5. 新的Date
  6. 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)注~

相關(guān)文章

最新評論