我正在处理一个使用Java的旧项目。它基于Java 7。 但这是所有Kotlin类的新代码。
在我们的摇篮中,它仍然是
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
很好奇,是否需要升级到Java 8,如果继续前进,我将用Kotlin进行编写?
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
从https://developer.android.com/studio/write/java8-support看来,执行上述操作的唯一原因是如果我们打算用Java 8编写。但是我很好奇,想避免不进行升级而错过一些新颖的Java优化程序,可以受益于Android中的Kotlin项目?
答案 0 :(得分:7)
是的,您仍然应该升级到Java8。这主要是因为许多现代版本的密钥库,例如okhttp 3.13 and higher现在都需要Java8。此外,所有最新的AndroidX -ktx
工件,例如Fragment's fragment-ktx
和WorkManager's work-runtime-ktx
都需要Java 8。
在Android's Java 8 Support blog post中:
即使您正在编写100%的Kotlin代码,Android的开发工具链和VM对新Java语言功能的支持仍然很重要。 Java的新版本在字节码和VM中带来了更有效的构造,而Kotlin可以利用它。
因此,随着对Java 8+的通用工具链支持的不断改进,由Kotlin代码生成的字节码也将继续改进。