我们现在应该使用Java8来开发Android吗?
关于这一点的其他问题已经有两年多的历史了,因此我想知道Java8和Android的现状 具体地说,我想使用lambda表达式,仅以该表达式开头。我想将如下代码重构为lambda表达式:我们现在应该使用Java8来开发Android吗?,android,Android,关于这一点的其他问题已经有两年多的历史了,因此我想知道Java8和Android的现状 具体地说,我想使用lambda表达式,仅以该表达式开头。我想将如下代码重构为lambda表达式: Handler handler = new Handler(Looper.getMainLooper()); handler.postDelayed(new Runnable() { @Override public void run() {
Handler handler = new Handler(Looper.getMainLooper());
handler.postDelayed(new Runnable() {
@Override
public void run() {
missileX = ufoX;
resetRecent();
waitForUfoTimer = false;
}
}, randomize(20000, 18000));
我们现在应该使用Java8来开发Android吗
对。您需要在module build.gradle中添加以下行
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
..
}
现在,android studio默认支持使用Java8语言功能。现在你不需要杰克来做这件事了。你必须有Android Studio插件3.0.0或更高版本。是的,我认为你应该。它引入了一些很好的特性,如lambda表达式、方法引用或流(虽然不是每个版本都支持),使代码更整洁。另一方面,整洁可能不会被视为某些人的优势,因为它可能被认为可读性较差。此外,Gradle的Android插件必须至少为
3.0.0
,这可能不是每个项目的选项
如前所述,如果minSdk
版本低于24,则不支持java8
的某些功能
任何minSdk
都支持什么:
有关更多信息,请参阅-是,使用lambda表达式等语言功能绝对可以。只需更改设置以反映版本8
但是,一些Java8API不适用于较旧的android版本。java LocalDate就是一个例子。如果你的目标是一个足够高的android版本(我相信是26个),那么这就行了,否则你将不得不使用java Date或joda timsb我非常怀疑“是”或“否”能否回答这个问题。这将取决于很多因素,比如你的受众和你的要求。每一个开发项目都必须权衡利弊。根据我的经验,启用Java8大大降低了我的构建速度,以至于现在无法使用它。脱糖步骤为我的身材增加了大约10秒。您的里程可能会有所不同。gradle插件和android工具的未来版本肯定会有所改进。