Kotlin 支持公共测试版

Kotlin 支持公共测试版

原文:https://medium.com/hackernoon/kotlin-support-public-beta-7a9cb034483

在将 Kotlin 移植到 Codename One 方面,我们已经做好了艰苦努力的准备……事实证明,获得基本支持比预期的要容易得多,只是有一些预期的警告,希望在未来可以接受。Steve 做了几乎所有的工作,我让他写一篇文章解释这些挑战,因为这不是他第一次将 JVM 语言移植到 Codename One。

我会尽量涵盖使用 Kotlin 的用户体验。但是让我们从警告开始:

  • 你需要使用 IntelliJ/IDEA——我不认为这是一个很大的牺牲,因为它是一个优秀的 IDE,有很好的 Kotlin 支持。对于其他 IDE 来说,这样做可能更具挑战性
  • 你将需要我们前几天发布的最新的 3.7.2 插件
  • 您需要从 Codename One 首选项中的扩展管理器工具安装 Kotlin 支持库
  • 不要使用项目转换工具或者接受项目不是 Kotlin 项目的警告。我们自己完成构建过程
  • 警告和错误没有正确列出,一个声称有 2 个错误的构建实际上通过了…
  • 这将使您的 jar 大小增加大约 730kb,这对自由层用户来说可能会更难

说了这么多,我们得到了几个可以在 iOS、Android 和网络上运行的应用程序(使用 JavaScript 端口),没有任何问题。这仍然是一个测试思想,所以我们可能已经错过了一些功能。

你好世界

理想情况下,当我们改进它时,我们将在新项目向导中有一个 Kotlin 选项,它已经包含了所有必要的部分。但是现在你可以采取以下步骤。

使用 3.7.2 插件或更新版本打开您的 Codename One 项目。

在右键菜单中选择代号一→代号一首选项。

kotlin中选择扩展类型并安装。然后右键单击项目选择 Codename One →刷新库。

转换

hello world Java 源文件如下所示(删除了一些注释和空白):

当我选择该文件并选择菜单选项 Code→Convert Java File to kot Lin File 时,我得到如下结果:

这很熟悉。问题是在自动转换中有两个错误…那就是 Kotlin 的代码与标准 Java 的行为不同。

第一个问题是,除非另行声明,否则 Kotlin 类是最终类,因此我们需要在类声明前添加 open 关键字:

open class MyApplication

这是很重要的,因为构建服务器会因为与 instanceof 相关的奇怪错误而失败,所以请注意…我们将来会尝试在模拟器上让它失败。

第二个问题是默认情况下参数是非空的。init方法可能有一个没有被使用的空参数…所以这个方法会因异常而失败。解决方法是在通话结束后加一个问号:fun init(context: Any?)

所以完整的工作样本是:

我们将何去何从?

这取决于你。我们的 GUI 生成器仍然支持 Java 文件,我们也许可以让它也支持 Kotlin 文件,并改进向导以支持新的 Kotlin 项目。

我们可以添加对 NetBeans 和 Eclipse 的支持。我们可以努力修改我们的文档,使之包括各地的 Kotlin 样本,没有限制…

我们可以做很多事情,但要做到这些,我们需要反馈和牵引力。反馈有助于我们了解什么对使用我们产品的人来说是重要的。牵引带来新的用户,帮助我们推广我们正在做的事情。如果你关心这个,让你的朋友知道。他们可能会要求更多的 Kotlin 功能,我们将增加对 Kotlin 的投资。


本站为非盈利网站,作品由网友提供上传,如无意中有侵犯您的版权,请联系删除