Kotlin如何与Java和JavaScript互操作?

时间:2017-05-17 21:43:15

标签: java android kotlin

Kotlin网站声明:

  

Kotlin与Java 100%可互操作。

Kotlin是Java的子集/超集吗?

此外,文档还指出Kotlin与JavaScript兼容,那么如何编译它以支持两者? Kotlin是一种像Xamarin一样的跨平台语言吗?

Java是否插回到Kotlin?

1 个答案:

答案 0 :(得分:8)

  

Kotlin是一种静态类型的编程语言   Java虚拟机也可以编译为JavaScript源代码   代码。

这意味着Kotlin有两个编译器,前者生成可以在JVM中执行的字节码,后者只生成Javascript。

这使得Kotlin可以与这两种语言互操作。

关于Kotlin和Java

例如,当Java字节码和Kotlin字节码在同一个JVM中运行时,您可以call Java from Kotlin和/或call Kotlin from Java

  

Calling Java code from KotlinCalling Kotlin from Java

     

Kotlin在设计时充分考虑了Java互操作性。现有的Java   代码可以从Kotlin以自然方式调用,而Kotlin代码可以   也可以从Java中使用。

     

零安全和平台类型

     

Java中的任何引用都可能为null,这就是Kotlin的要求   对于来自Java的对象,严格的null安全性是不切实际的。类型   Java声明在Kotlin中被特别处理并被调用   平台类型。对于这些类型,放宽空检查,以确保安全   对它们的保证与Java相同

关于Kotlin和Javascript

以同样的方式,当您使用生成Javascript的Kotlin编译器时,您可以让Kotlin与Javascript源一起运行在同一JavaScript engine中。 所以你可以call Kotlin from Javascript和/或call Javascript from Kotlin

  

<强> Calling JavaScript from Kotlin

     

Kotlin旨在与Java平台轻松互操作。它   将Java类视为Kotlin类,Java将Kotlin类视为   Java类。但是,JavaScript是一种动态类型语言,   这意味着它不会在编译时检查类型。你可以自由地   通过动态与Kotlin的JavaScript交谈   类型,但如果你想要Kotlin型系统的全部功能,你可以   为JavaScript库创建Kotlin头文件。

     

<强> Calling Kotlin from JavaScript

     

Kotlin编译器生成普通的JavaScript类,函数和   您可以从JavaScript代码中自由使用的属性。尽管如此,   你应该记住一些微妙的事情。为防止破坏全局&gt;对象,Kotlin创建一个包含所有Kotlin声明的对象   来自当前的模块。因此,如果您将模块命名为myModule,则所有&gt;声明可供JavaScript使用   通过myModule对象。

关于你关于Xamarin的问题我只会说Xamarin和Kotlin是两个完全不同的东西。您可以将Xamarin与Ionic或PhoneGap进行比较,因为它们是可以让您创建多平台应用程序的产品。

另一方面,Kotlin是一种语言,您可以编译该语言以在不同的环境和/或设备上运行您的程序。