End*_*eit 6 java jvm invokedynamic kotlin kotlin-java-interop
从 Kotlin 1.6.0 开始,对于 Kotlin/JVM 项目,可以指定-jvm-target version最高可达 Java 的选项17,请参阅常规和Gradle 插件文档。
这样做有什么好处呢?除了 的默认值之外,我找不到太多关于指定其他值的好处1.8。
我能找到的唯一的东西是:
Record支持 Java,请参阅Kotlin 1.5.0 的发布博客。两者对我来说似乎都可以忽略不计。
特别是因为当指定更高的目标时,人们将失去在使用 Java 1.8 的项目中使用生成的工件的能力,这似乎是不可取的,尤其是对于库而言。
我在这里错过了什么吗?
Hol*_*ger 15
我不知道 Kotlin 积极使用或支持什么。
\n以后的 Java 环境中提供的以下功能可能会给其他编程语言带来好处,即使您没有在应用程序代码中主动使用它们:
\n您的语言的并发结构可能会使用VarHandle即使您不直接使用此 API,[JDK\xc2\xa09]
如果您的语言需要它,reachabilityFence则允许在执行点之前防止垃圾收集,而不是依赖脆弱或昂贵的解决方法 [JDK\xc2\xa09]
动态添加类到当前环境的官方方法,而不是侵入 JRE 内部 [JDK\xc2\xa09]
\n您已经提到了字符串连接\xe2\x80\xa6 [JDK\xc2\xa09]
\n当您创建一个声明所需依赖项的模块时,您可以创建一个仅包含所需模块的自定义 JDK,以便与应用程序一起部署(无论如何,这消除了对 1.8 兼容性的需要)。[JDK\xc2\xa09]
\n属于嵌套的类可以互相访问private成员,而不需要辅助方法。您的语言的编译器可以决定哪些类属于嵌套,它不一定是 Java\xe2\x80\x99 嵌套类的语义。[JDK\xc2\xa011]
自定义动态常数。您可以使用可加载的任意常量ldc,该常量由首次执行时的引导方法构造并随后重用。这意味着该语言可以使用自己类型的常量,就像 Java\xe2\x80\x99s 内置常量一样(想想字符串驻留)。[JDK\xc2\xa011]
使用官方 API创建动态匿名类,而不是假设专有的存在sun.misc.Unsafe[JDK\xc2\xa015]
密封课程是JVM直接支持的,所以如果语言有这样的概念,它可以直接翻译它,而不是模拟它。[JDK\xc2\xa017]
\n也许还有更多对特定语言实现有用但对我们来说并不明显的东西,而不是试图在 JVM 上实现该语言
\n| 归档时间: |
|
| 查看次数: |
2051 次 |
| 最近记录: |