欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用 Lambda 取代 Android 中的匿名類

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

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

  1. Lambda表達(dá)式
  2. 函數(shù)式接口
  3. 流API
  4. 默認(rèn)方法
  5. 新的Date
  6. 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 可以取代匿名類,所以我們先來(lái)挑幾個(gè)匿名類練練手.

這里先簡(jiǎn)單的提及一下Lambda的語(yǔ)法:() -> {}咋一看可能覺(jué)得這個(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ì)提示說(shuō)匿名類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)注~

相關(guān)文章

最新評(píng)論