如何将Kotlin源文件转换为Java源文件

v6ylcynt  于 2022-12-13  发布在  Kotlin
关注(0)|答案(8)|浏览(415)

我有一个Kotlin源文件,但是我想把它翻译成Java。
如何将Kotlin转换为Java源代码?

anauzrmj

anauzrmj1#

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

  1. Menu > Tools > Kotlin > Show Kotlin Bytecode
    1.单击Decompile按钮
    1.复制java代码

更新日期:

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

wmomyfyw

wmomyfyw2#

您可以将Kotlin编译为字节码,然后使用Java反汇编程序。
反编译可以在IntelliJ Idea内部完成,或者使用FernFlower https://github.com/fesh0r/fernflower(感谢@Jire)
没有自动化的工具,因为我检查了几个月前(也没有一个AFAIK的计划)

jgzswidk

jgzswidk3#

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

chhqkbe1

chhqkbe14#

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

1.在Mac上按Cmd-Shift-A组合键,或在Windows计算机上按Ctrl-Shift-A组合键。
1.键入您要查找的操作:Kotlin Bytecode,然后从菜单中选择Show Kotlin Bytecode

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

1.现在,您将在相邻的选项卡中获得一个反编译的Java文件沿着Kotlin文件:

nwnhqdif

nwnhqdif5#

我将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);
    }
}
pgpifvop

pgpifvop6#

正如@louis-cad提到的,“Kotlin源代码-〉Java的字节码-〉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查看。

pokxtpni

pokxtpni7#

1.在android studio中打开Kotlin文件
1.转到工具-〉Kotlin-〉kotlin字节码
1.在你的Kotlin文件旁边打开的新窗口中,点击反编译按钮。它将创建你的kotlin文件的java等价物。

rpppsulh

rpppsulh8#

Java和Kotlin在Java虚拟机(JVM)上运行。
将Kotlin文件转换为Java文件涉及两个步骤,即,将Kotlin代码编译为JVM字节码,然后将字节码反编译为Java代码。
将Kotlin源文件转换为Java源文件的步骤:
1.在Android Studio中打开Kotlin项目。
1.然后导航到工具-〉Kotlin-〉显示Kotlin字节码。

1.您将获得Kotin文件的字节码。
1.现在单击Decompile按钮,从字节码中获取Java代码

相关问题