我正在做一个使用Java的旧项目。它是基于Java 7的,但是现在它都是用于新代码的Kotlin类。
在我们的等级里,它仍然是
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}只是好奇,如果要继续用Kotlin编写,是否需要升级到Java 8?
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}从https://developer.android.com/studio/write/java8-support看来,这么做的唯一原因似乎是如果我们打算用Java 8编写。但我很好奇,我想避免升级,也不想错过一些对安卓系统的Kotlin项目有益的整洁的新Java优化吗?
发布于 2019-08-19 01:42:35
是的,您仍然应该升级到Java8。这主要是因为许多现代版本的关键库(如okhttp 3.13及更高版本 )现在都需要Java8。此外,最近所有的AndroidX -ktx工件,比如fragment-ktx和work-runtime-ktx都需要Java8。
Android的开发工具链和VM支持新的Java语言特性仍然很重要,即使您正在编写100%的Kotlin代码。Java的新版本在字节码和VM中都带来了更高效的构造,然后Kotlin可以利用这些构造。
因此,随着对Java的通用工具链支持不断改进,由Kotlin代码生成的字节码也将继续改进。
https://stackoverflow.com/questions/57549541
复制相似问题