【问题标题】:Is converting a Kotlin file to java, adding java code to it and converting back to Kotlin same as adding code directly to the Kotlin file?将 Kotlin 文件转换为 java、向其中添加 java 代码并转换回 Kotlin 与直接向 Kotlin 文件添加代码相同吗?
【发布时间】:2017-11-04 09:25:48
【问题描述】:

我想为 Github 上的 Kotlin android 项目做出贡献,但我不了解 Kotlin。假设我在 Android Studio 中使用“反编译”将 Kotlin 代码转换为 Java,将我自己的 Java 代码添加到转换后的文件中,然后将编辑后的文件转换回 Kotlin。如果我直接向其中添加代码而不转换为 java,生成的 Kotlin 代码会相同吗? 如果我想在不了解 Kotlin 的情况下为 Kotlin 项目做出贡献,这是一个可行的策略吗?

【问题讨论】:

    标签: java android kotlin


    【解决方案1】:

    Kotlin 反编译器不是用于将 Kotlin 代码转换回 Java 并实际使用该代码。这是为了让您了解 Kotlin 代码编译成的字节码,仅使用熟悉的 Java 语法,因为大多数人无法直接读取字节码。如果不进行额外的工作来修复它,反编译的 Java 代码通常甚至无法执行。

    Java 到 Kotlin 的编译器旨在为您提供从现有 Java 代码中工作的 Kotlin 代码,但是,即使这样也无法生成好的、惯用的 Kotlin。

    结合这两个不完美的转换(如果它以某种方式工作)不会让您仅通过新修改获得原始的 Kotlin 代码,它可能会严重混淆所有转换后的代码。对于类比,可以将其视为使用谷歌翻译通过几种不同的语言翻译一个句子,然后再回到原文。

    如果您希望为使用 Kotlin 的开源项目做出贡献,那么学习 Kotlin 会更容易、更可行。如果您已经了解 Java,那真的很容易上手。

    【讨论】:

      【解决方案2】:

      我同意 zsmb13。

      执行以下步骤不是一个好主意:

      1. 检查 Kotlin 字节码
      2. 将字节码转换为 Java
      3. 编辑 Java 代码
      4. 将 Java 代码转换为 Kotlin

      你最终会得到一些近乎无稽之谈的东西,而且你肯定不会得到干净、惯用的 Kotlin 代码。

      如果您有 Java 开发背景,您应该很快就能熟悉 Kotlin。我发现它是一种非常干净且富有表现力的语言,它消除了 Java 中许多不必要的样板文件。

      【讨论】:

        【解决方案3】:

        正如其他人所说,将 Kotlin 转换为 Java 只是为了在 Java 中编辑代码,然后再将其转换回 Kotlin,这没有任何意义。如果您只是想编辑现有的 Kotlin 代码,则应该学习 Kotlin 并编辑 Kotlin 代码。

        但是,由于可以从 Kotlin 无缝调用 Java,如果您有一些出色的 Java 库或类可以真正填补现有 Kotlin 项目中的空白,您也许可以直接贡献 Java 代码。假设该项目不是针对 Kotlin Native,也不是严格禁止 Java,他们可以利用您现有的 Java 代码,然后在需要修改的时候将其转换为 Kotlin。

        许多组织都遵循所有代码都用 Kotlin 编写的公式,现有的 Java 代码只有在需要更改时才转换为 Kotlin,因此使用 Kotlin 是完全合理的项目可能包含或至少通过引用的库使用 Java 代码。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-11-19
          • 2018-06-24
          • 2020-05-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-08-22
          • 1970-01-01
          相关资源
          最近更新 更多