如果我只是用Kotlin编写,是否需要为Android Studio升级到Java 8?

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优化功能?

ian*_*ake 7

是的,您仍然应该升级到Java8。这主要是因为许多现代版本的密钥库(例如okhttp 3.13和更高版本)现在都需要Java8。此外,所有最新的AndroidX -ktx工件(例如Fragmentfragment-ktxWorkManagerwork-runtime-ktx都需要Java 8)。

Android的Java 8支持博客文章中

即使您正在编写100%的Kotlin代码,Android的开发工具链和VM对新Java语言功能的支持仍然很重要。Java的新版本在字节码和VM中带来了更有效的构造,然后Kotlin可以利用。

因此,随着对Java 8+的通用工具链支持的不断提高,由Kotlin代码生成的字节码也将不断提高。