如何在Android Studio上应用Java 8?
这里首先需要说明下在Android Studio(下文中使用AS代指)上使用Java 8会遇到的坑和问题。
一般我们在AS上应用Java 8的方式是通过使用Jack来进行编译,使用方法如下:
android {
...
defaultConfig {
...
jackOptions {
enabled true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
当我们使用Jack的时候会导致我们无法使用AS的Instant Run和DataBinding功能,而且不支持接口的默认方法。这不能成为我们放弃使用Java 8的理由。当我们正准备愉快地使用Java 8时,Google突然在17年3月的某一天宣布放弃Jack,对的,我们的Google又弃坑了。
不过放心,Google在AS 2.4版本中提供了对Java 8的官方支持,在AS 2.4中使用Java 8不会产生任何负面的影响。AS 2.4提供了测试版供开发者使用,如果有兴趣的话可以提前体验AS 2.4的新功能,到目前为止笔者已经愉快地使用AS 2.4开发一周多了。AS 2.4的下载地址为:https://developer.android.com/studio/preview/index.html。
在AS 2.4中使用Java 8的方法:
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
效果:
Android Studio 2.4:
目录结构:
Lambda表达式: