在Android中使用Java 8的lambda表達(dá)式
作為一名Java開發(fā)者,或許你時(shí)常因?yàn)槿狈﹂]包而產(chǎn)生許多的困擾。幸運(yùn)的是:Java’s 8th version introduced lambda functions給我們帶來了好消息;然而,這咩有什么卵用,在android上面,我們?nèi)耘f只能使用Java7.
那么現(xiàn)在情況如何?哈哈,我們android developer也能用啦!我們的老伙計(jì)Esko Luontola發(fā)現(xiàn)了在android上面使用lambda的方法,真是棒啊!那么,我們來看看是怎么實(shí)現(xiàn)的吧!
Just as there was Retroweaver et al. for running Java 5 code with generics on Java 1.4。Retrolambda允許我們能夠在Java 8或者更低的版本上使用lambda表達(dá)式。這真是太棒了:在Java 7的虛擬機(jī)中,我們能夠運(yùn)行在8上編譯完成的代碼。
現(xiàn)在,我們使用Android Studio和gradle來實(shí)現(xiàn)吧,和Retrolambda簽訂契約,成為馬猴燒酒吧(霧!
Install JAVA 8 SDK
下載java-8">能搞起,前提是要使用Java 8的SDK,在這里能夠下載:JAVA 8
好了,現(xiàn)在在android studio中設(shè)置使用java 8吧。
Mac:
File > Project structure. 需要將這樣設(shè)置:
別的可以參照設(shè)置。
Set up Gradle
你真棒呀!差不多你快好了。最后的步驟就是編輯Gradle的一些配置文件了。我們將會(huì)使用Retrolambda plugin from Evan Tatarka,這樣才能夠支持lambda表達(dá)式。
First、打開app模塊中的build.gradle文件,改變compileOption節(jié)點(diǎn)下的配置:
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表達(dá)式,其他的特性在android中是行不通的。