Ely*_*lye 6 java android java-8 kotlin android-studio
我正在开发一个使用Java的旧项目。它基于Java7。但是现在它是所有Kotlin类的新代码。
在我们的摇篮中,它仍然
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
Run Code Online (Sandbox Code Playgroud)
只是好奇,是否需要升级到Java 8,如果继续前进,我会用Kotlin编写?
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
Run Code Online (Sandbox Code Playgroud)
从https://developer.android.com/studio/write/java8-support看来,执行上述操作的唯一原因是我们打算用Java 8编写。但是我很好奇,并希望避免不进行升级。并错过了一些可以使Android的Kotlin项目受益的全新Java优化功能?
是的,您仍然应该升级到Java8。这主要是因为许多现代版本的密钥库(例如okhttp 3.13和更高版本)现在都需要Java8。此外,所有最新的AndroidX -ktx工件(例如Fragmentfragment-ktx和WorkManagerwork-runtime-ktx都需要Java 8)。
即使您正在编写100%的Kotlin代码,Android的开发工具链和VM对新Java语言功能的支持仍然很重要。Java的新版本在字节码和VM中带来了更有效的构造,然后Kotlin可以利用。
因此,随着对Java 8+的通用工具链支持的不断提高,由Kotlin代码生成的字节码也将不断提高。