我有一个Kotlin源文件,但我想把它翻译成Java。
如何将Kotlin转换为Java源代码?
答案 0 :(得分:311)
正如@Vadzim所说,在IntelliJ或Android Studio中,您只需执行以下操作即可从kotlin获取Java代码:
Menu > Tools > Kotlin > Show Kotlin Bytecode
Decompile
按钮<强>更新强>
使用最新版本(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)
答案 3 :(得分:3)
正如@ louis-cad所说,“Kotlin源代码 - &gt; Java的字节代码 - &gt; Java源代码”是迄今为止唯一的解决方案。
但我想提一下我喜欢的方式:使用Jadx decompiler for Android。
它允许查看闭包的生成代码,对我来说,生成的代码比IntelliJ IDEA反编译器中的代码“更清晰”。
通常,当我需要查看任何Kotlin类的Java源代码时,我会这样做:
./gradlew assembleDebug
jadx-gui ./app/build/outputs/apk/debug/app-debug.apk
在此GUI基本IDE功能中起作用:类搜索,单击以进行声明。等
此外,所有源代码都可以保存,然后使用IntelliJ IDEA等其他工具进行查看。
答案 4 :(得分:3)
答案 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中):
输入您要查找的操作:Kotlin Bytecode
,然后从菜单中选择Show Kotlin Bytecode
。
Decompile
面板顶部的Kotlin Bytecode
按钮。希望这会有所帮助。
答案 7 :(得分:2)
Java和Kotlin在Java虚拟机(JVM)上运行。
将Kotlin文件转换为Java文件涉及两个步骤,即将Kotlin代码编译为JVM字节码,然后将字节码反编译为Java代码。
将Kotlin源文件转换为Java源文件的步骤:
答案 8 :(得分:-1)
我不敢相信没有人提到Local History:默认情况下,IDEA将保留文件更改的历史记录。
要完全恢复文件(将其转换为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