Kotlin网站上写道:
Kotlin与Java完全兼容。
Kotlin是Java的子集/超集吗?
此外,文档说明Kotlin与JavaScript兼容,那么它如何编译以支持两者?Kotlin是否像Xamarin一样是跨平台语言?
Java能否转换回Kotlin?
Kotlin专注于与Java的互操作性设计。可以自然地从Kotlin调用现有的Java代码,也可以很顺畅地从Java中使用Kotlin代码。
空安全和平台类型
Java中的任何引用都可能为null,这使得Kotlin对严格的空安全要求在来自Java的对象方面变得不切实际。 Kotlin中的Java声明类型被特殊处理,并称为平台类型。对于这种类型,空检查会放宽,因此对它们的安全保证与Java相同。
Kotlin旨在与Java平台轻松互操作。它将Java类视为Kotlin类,Java也将Kotlin类视为Java类。但是,JavaScript是一种动态类型语言,这意味着它不会在编译时检查类型。您可以通过动态类型自由地从Kotlin访问JavaScript,但是如果您想要完整的Kotlin类型系统功能,则可以为JavaScript库创建Kotlin头文件。
Kotlin编译器生成普通的JavaScript类、函数和属性,您可以自由地从JavaScript代码中使用。然而,有一些微妙的事情需要记住。为了防止破坏全局对象,Kotlin创建一个包含当前模块所有Kotlin声明的对象。因此,如果您将模块命名为myModule
,则所有声明都可以通过myModule
对象在JavaScript中使用。