从 Kotlin 1.6.0 开始,对于 Kotlin/JVM 项目,可以指定-jvm-target version
最高为 Java 的选项17
,请参阅通用和Gradle 插件文档。
这样做有什么好处?除了指定默认值之外,我找不到太多关于指定其他内容的好处1.8
。
我能找到的唯一的东西是:
- 在 JVM 9+ 目标上,字符串连接被编译成动态调用(invokedynamic),请参阅Kotlin 1.5.20 的发布博客
- 在 JVM 10+ 目标上,
Record
支持 Java 的,请参阅Kotlin 1.5.0 的发布博客。
两者在我看来都微不足道。
特别是因为当指定一个更高的目标时,人们失去了在使用 Java 1.8 的项目中使用生成的工件的能力,这对于库来说似乎是不受欢迎的。
我在这里错过了什么吗?