与此有关的其他问题已有两年多了,因此,我想知道Java 8与Android的关系。
具体地说,我只想使用lambda表达式作为开头。我想将以下代码重构为lambda表达式:
Handler handler = new Handler(Looper.getMainLooper());
handler.postDelayed(new Runnable() {
@Override
public void run() {
missileX = ufoX;
resetRecent();
waitForUfoTimer = false;
}
}, randomize(20000, 18000));
答案 0 :(得分:2)
我们现在应该使用Java 8进行Android开发吗?
是的。您需要在build.gradle模块中添加以下行
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
..
}
现在默认情况下,Android Studio支持使用Java8语言功能。现在您不需要杰克了。您必须具有Android Studio插件3.0.0或更高版本。
答案 1 :(得分:2)
是的,我认为您应该这样做。它带来了一些不错的功能,例如lambda表达式或方法引用或流(尽管并非每个版本都支持),这使代码变得更加整洁。另一方面,对于某些人来说,整洁可能不被视为优势,因为它被认为可读性较差。此外,您的Gradle Android插件必须至少为3.0.0
,并非每个项目都可以选择。
如前所述,如果您的JAVA 8
版本低于24,则不支持minSdk
的某些功能。
任何minSdk
支持什么:
有关更多信息,请参阅-https://developer.android.com/studio/write/java8-support
答案 2 :(得分:1)
是的,使用lambda表达式等语言功能绝对可以。只需更改设置以反映版本8。
但是,某些Java 8 API对于较旧的android版本不可用。例如Java LocalDate。如果您定位到足够高的android版本(我相信是26),那么它将起作用,否则,您将不得不使用java Date或joda timsb