为啥 Kotlin 多平台项目的 commonMain 可以访问 kotlin.jvm 包?

Posted

技术标签:

【中文标题】为啥 Kotlin 多平台项目的 commonMain 可以访问 kotlin.jvm 包?【英文标题】:Why is kotlin.jvm package accessible in commonMain for Kotlin multi-platform project?为什么 Kotlin 多平台项目的 commonMain 可以访问 kotlin.jvm 包? 【发布时间】:2021-02-18 16:25:08 【问题描述】:

我看到对于一个多平台的 Kotlin 项目,你可以访问 commonMain 中的Kotlin.jvm 包。

例如,我可以使用(没有任何编译错误)kotlin.jvm.Synchronized

commonMain 由所有平台共享,这是否意味着 ios 平台 kotlin.jvm.Synchronized 可以正常工作?如果是,那为什么在jvm包下?

【问题讨论】:

【参考方案1】:

它在 iOS 上不会做任何事情,但它允许您在公共代码中添加该注释,而无需对期望/实际做一些复杂的事情。这显然在 Kotlin/JS(单线程)中毫无意义。

【讨论】:

以上是关于为啥 Kotlin 多平台项目的 commonMain 可以访问 kotlin.jvm 包?的主要内容,如果未能解决你的问题,请参考以下文章

Kodein + Ktor = 冻结 kotlin.collections.HashMap 的突变尝试 - 为啥?

如何在多平台多项目 Kotlin 构建中向另一个项目的测试添加依赖项

在 kotlin 多平台项目中运行测试

从 kotlin 多平台项目创建 fat jar

Kotlin 多平台项目在 IDEA 中运行通用模块测试

Kotlin 多平台项目依赖于另一个带有 cocoapods 的项目