編輯:Android資訊
Lambda是第十一個希臘字母,大寫Λ,小寫λ,額,跑題了…Lambda表達式 是Java8的新特性之一:
Lambda表達式 取代了匿名類 ,取消了模板,允許用函數式風格編寫代碼。
由於最近接觸了RxJava,遇到了Lambda,立馬就喜歡上了~所以就學習了一下.
本文主要介紹一下Lambda在Android中替代匿名類的部分使用場景.
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,參數不能省略,但是可以隨意命名.
在Android中我們起個線程一般這麼寫:
new Thread(new Runnable() { @Override public void run() { doSomething(); } }).start();
而使用Lambda表達式的話可以這麼寫:
new Thread(() -> doSomething()).start();
另外實例化Runnable成員變量也可以這麼寫:
Runnable runnable = ()->doSomething();
看完這兩個例子是否對Lambda感興趣了呢?後續我還會繼續學習,有興趣的請繼續關注~
嘿!經過一段時間收集了大量反饋意見後,我認為應該來說說這個話題了。我會在這裡給出我認為構建現代移動應用(Android)的好方法,這會是另一番體味。 開始之前,假
介紹 Mono for Android 平台下 ListActivity 的使用, 以及如何進行自定義 ListActivity 的 Adapter。 使用 Li
DBFlow,綜合了 ActiveAndroid, Schematic, Ollie,Sprinkles 等庫的優點。同時不是基於反射,所以性能也是非常高,效率緊
這是從Philippe Breault的系列文章《Android Studio Tips Of the Day》中提取出來的自認為精華的部分。 這些技巧在實際應用