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

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


当前回答

你可以去工具> Kotlin >显示Kotlin字节码

其他回答

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

在Mac上按Cmd-Shift-A键, 或者在Windows机器上按Ctrl-Shift-A。 键入您正在寻找的动作:Kotlin Bytecode并从菜单中选择Show Kotlin Bytecode。

按下Kotlin字节码面板顶部的反编译按钮。

现在你在一个相邻的选项卡中得到了一个反编译的Java文件和Kotlin文件:

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

反编译可以在IntelliJ Idea中完成,或者使用FernFlower https://github.com/fesh0r/fernflower(谢谢@Jire)

正如我几个月前检查的那样,没有自动化工具(也没有AFAIK的计划)

我将Kotlin编译为字节代码,然后将其反编译为Java。我用Kotlin编译器编译,用cfr反编译。

我的项目在这里。

这允许我编译这个:

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);
    }
}

你可以去工具> Kotlin >显示Kotlin字节码

正如@Vadzim所说,在IntelliJ或Android Studio中,你只需要做以下事情就可以从kotlin获得java代码:

菜单>工具> Kotlin >显示Kotlin字节码 点击反编译按钮 复制java代码

更新:

使用Kotlin插件的最新版本(1.2+),您还可以直接执行菜单>工具> Kotlin ->反编译Kotlin到Java。