在Android中使用Java 8的lambda運算式
在Android中使用Java 8的lambda運算式作為一名Java開發人員,或許你時常因為缺乏閉包而產生許多的困擾。幸運的是:Java’s 8th version introduced lambda functions給我們帶來了好訊息;然而,這咩有什麼卵用,在android上面,我們仍舊只能使用Java7.那麼現在情況如何?哈哈,我們android developer也能用啦!我們的老夥計Esko Luontola發現了在android上面使用lambda的方法,真是棒啊!那麼,我們來看看是怎麼實現的吧!Just as there was Retroweaver et al. for running Java 5 code with generics on Java 1.4。Retrolambda允許我們能夠在Java 8或者更低的版本上使用lambda運算式。這真是太棒了:在Java 7的虛擬機器中,我們能夠運行在8上編譯完成的代碼。現在,我們使用Android Studio和gradle來實現吧,和Retrolambda簽訂契約,成為馬猴燒酒吧(霧!Install JAVA 8 SDK能搞起,前提是要使用Java 8的SDK,在這裡能夠下載:JAVA 8好了,現在在android studio中設定使用java 8吧。
Mac:
File > Project structure. 需要將這樣設定:
別的可以參照設定。
Set up Gradle你真棒呀!差不多你快好了。最後的步驟就是編輯Gradle的一些設定檔了。我們將會使用Retrolambda plugin from Evan Tatarka,這樣才能夠支援lambda運算式。First、開啟app模組中的build.gradle檔案,改變compileOption節點下的配置:
android { } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }}
Second、在同樣的檔案中添加:
buildscript { repositories { mavenCentral() } dependencies { classpath 'me.tatarka:gradle-retrolambda:2.5.0' }}repositories { mavenCentral()}apply plugin: 'me.tatarka.retrolambda'
然後就OK啦,嘗試build你的工程吧,肯定棒棒噠~
需要注意的是:Retrolambda僅僅允許你使用Java 8中的lambda運算式,其他的特性在android中是行不通的。