如何将kotlin源文件转换为java源文件

时间:2016-01-22 23:07:14

标签: java kotlin code-conversion

我有一个Kotlin源文件,但我想把它翻译成Java。

如何将Kotlin转换为Java源代码?

10 个答案:

答案 0 :(得分:311)

正如@Vadzim所说,在IntelliJ或Android Studio中,您只需执行以下操作即可从kotlin获取Java代码:

  1. Menu > Tools > Kotlin > Show Kotlin Bytecode
  2. 点击Decompile按钮
  3. 复制java代码
  4. <强>更新

    使用最新版本(1.2+)的Kotlin插件,您也可以直接Menu > Tools > Kotlin -> Decompile Kotlin to Java

答案 1 :(得分:36)

您可以将Kotlin编译为字节码,然后使用Java反汇编程序。

反编译可以在IntelliJ Idea内部完成,也可以使用FernFlower https://github.com/fesh0r/fernflower完成(感谢@Jire)

我几个月前检查过没有自动化工具(并且没有一个AFAIK的计划)

答案 2 :(得分:15)

您可以转到工具> Kotlin>显示Kotlin字节码

enter image description here

enter image description here

enter image description here

答案 3 :(得分:3)

正如@ louis-cad所说,“Kotlin源代码 - &gt; Java的字节代码 - &gt; Java源代码”是迄今为止唯一的解决方案。

但我想提一下我喜欢的方式:使用Jadx decompiler for Android

它允许查看闭包的生成代码,对我来说,生成的代码比IntelliJ IDEA反编译器中的代码“更清晰”。

通常,当我需要查看任何Kotlin类的Java源代码时,我会这样做:

  • 生成apk:./gradlew assembleDebug
  • 使用Jadx GUI打开apk:jadx-gui ./app/build/outputs/apk/debug/app-debug.apk

在此GUI基本IDE功能中起作用:类搜索,单击以进行声明。等

此外,所有源代码都可以保存,然后使用IntelliJ IDEA等其他工具进行查看。

答案 4 :(得分:3)

  1. 在android studio中打开kotlin文件
  2. 转到工具 - &gt; kotlin - &gt; kotlin字节码
  3. 在您的kotlin文件旁边打开的新窗口中,单击反编译按钮。它将创建与你的kotlin文件相当的java。

答案 5 :(得分:3)

我将Kotlin编译为字节码,然后将其反编译为Java。我使用Kotlin编译器进行编译,并使用cfr进行反编译。

我的项目是here

这可以让我编译它:

package functionsiiiandiiilambdas.functions.p01tailiiirecursive

tailrec fun findFixPoint(x: Double = 1.0): Double =
        if (x == Math.cos(x)) x else findFixPoint(Math.cos(x))

对此:

package functionsiiiandiiilambdas.functions.p01tailiiirecursive;

public final class ExampleKt {
  public static final double findFixPoint(double x) {
    while (x != Math.cos(x)) {
      x = Math.cos(x);
    }
    return x;
  }

  public static /* bridge */ /* synthetic */ double findFixPoint$default(
      double d, int n, Object object) {
    if ((n & 1) != 0) {
      d = 1.0;
    }
    return ExampleKt.findFixPoint(d);
  }
}

答案 6 :(得分:3)

  

要将Kotlin源文件转换为Java源文件,您需要(在Android Studio中):

  1. 在Mac上按 Cmd - Shift - A , 或在Windows计算机上按 Ctrl - Shift - A enter image description here

  2. 输入您要查找的操作:Kotlin Bytecode,然后从菜单中选择Show Kotlin Bytecode

enter image description here

  1. 按下Decompile面板顶部的Kotlin Bytecode按钮。

enter image description here

  1. 现在在相邻的选项卡中将获得反编译的Java文件以及Kotlin文件:

enter image description here

希望这会有所帮助。

答案 7 :(得分:2)

Java和Kotlin在Java虚拟机(JVM)上运行。

将Kotlin文件转换为Java文件涉及两个步骤,即将Kotlin代码编译为JVM字节码,然后将字节码反编译为Java代码。

将Kotlin源文件转换为Java源文件的步骤:

  1. 在Android Studio中打开您的Kotlin项目。
  2. 然后导航至工具-> Kotlin->显示Kotlin字节码。

enter image description here

  1. 您将获得Kotin文件的字节码。
  2. 现在单击“反编译”按钮以从字节码中获取Java代码

答案 8 :(得分:-1)

我不敢相信没有人提到Local History:默认情况下,IDEA将保留文件更改的历史记录。

要完全恢复文件(将其转换为Kotlin之前的文件),

对于每个要还原的文件:

  • 打开查找动作(在Mac上为Command-Shift-A)
  • 搜索“本地历史记录”
  • 按两次Enter键(一次在搜索结果中接受“本地历史记录”,然后再一次在“本地历史记录”菜单中选择“显示历史记录”)
  • 在左侧列表中找到“将文件从Java转换为Kotlin”
  • 右键单击它,然后选择“还原”

如果您数月前这样做(因为“本地历史记录”不是VCS),则可能不起作用,例如,它不会重新创建您使用Kotlin添加的任何方法,但是对我有用。

答案 9 :(得分:-1)

您可以按照以下步骤将 Kotlin 转换为 Java 源代码

1. 在 IntelliJ IDEA / Android Studio 中打开您的 Kotlin 项目。

2.然后导航到工具 > Kotlin > 显示 Kotlin 字节码。

3.您将获得 Kotin 文件的字节码。

4.现在点击反编译按钮从字节码中获取你的Java代码。

如果你想了解更多。我为你做了谷歌搜索。我在那里找到了几个真正的教程。下面的链接看起来很糟糕。 https://hkrtrainings.com/kotlin-tutorial