有一kotlin源文件,但我想它translate Java。
如何能在convert kotlin两个Java源代码?
- 我很确定还没有为这个构建自动化工具。你可以先建造它!
- 也许教他们读科特琳更容易些
- 很可能你会遇到一个丑陋的和不可维护的Java类,如果没有类路径中的KOTLIN标准库,Java类就不会运行。有什么意义?
- 考虑J2OBJC转换器。如果你能做科特林> Java> Objc,那就太棒了。
- @patrick kotlin/native现在支持与Objective-C和多平台项目的互操作,因此您现在可以共享代码;)
- "反编译"按钮的目标是帮助人们理解Kotlin编译是如何工作的。它生成的Java代码并不打算作为实际的生产代码使用(并且非常不适合这个代码——首先,它不总是编译…)
- Decompile Kotlin to Java当前仅对编译的Kotlin类启用。
- @ YOLE对于那些不认识Kotlin或者有时间学习它的人来说,在这个语言中有一些样本代码有一些功能,他们需要了解它们的Java代码工作吗?
- @正如你所能想象的,考特林团队的目标不是帮助人们避免学习考特林。学习足够多的知识来理解代码示例所做的工作不会花费您太长时间。
他说:"vadzim IntelliJ在工作室或Android,你就必须做下面的Java代码从kotlin:Get
Menu > Tools > Kotlin > Show Kotlin Bytecode
在Decompile按钮点击
复制Java代码
更新:
一个最近的版本(2 +)的kotlin插件你可以做Menu > Tools > Kotlin -> Decompile Kotlin to Java直接。
- Java输出不难看吗?
- @当然,和大多数反编译输出一样,起搏器也是
- 从KOTLIN转换为Java。但它显示了额外的代码。我从未写过或听到过的密码
- 因为你编写了Kotlin代码,而不是Java。KOTLIN特性依赖字节码,不一定像你所期望的那样翻译成Java。还有一些额外的检查,主要是对空性的检查,以及合成方法和字段的检查。
- 如果你在使用科特林图书馆怎么办?字节码也引用了Kotlin库…=(
- @提高这不是问题。Kotlin stdlib也在字节码中,只保留依赖项,它与一个普通的Java项目兼容。
- 该选项未启用,颜色为灰色。如何启用它。
- @是的,这是一个已知的问题,包含协程的代码经常会发生这种情况。这是问题,请投票赞成。
- @Vikapandey注意,该选项仅对来自项目的Kotlin源文件启用,而不是对来自外部库的Kotlin文件启用,至少现在是这样。如果需要,您可以在kotl.in/issue上创建一个问题来请求此功能(如果需要,请将其链接回此处)。
- @vikastandey,Decompile Kotlin to Java当前仅对编译的Kotlin类启用。
- 反编译字节码从另一种语言到Java可以产生无效或误导代码。KOTLIN生成的模式可能不正确地出现在爪哇。这将给您一个代码的概念,但不能逐字接受。
你可以编译的字节码,然后使用一个kotlin,Java汇编。
在decompiling IntelliJ IDEA内部可能会做,或使用fernflower http:////fesh0r github.com(集热fernflower谢谢@)
没有自动化的工具,几个月前,当我检查了(据我所知,没有一个计划)
- 作为一个旁注,请注意,生成代码中的泛型可能会导致编译器警告,因为Kotlin允许Java编译器不做某些事情。不过,它仍然以字节码的形式工作。
- @雅各布齐默尔曼,哇,从没听说过。一些例子?
- Vord丹我认为他指的是泛化的泛型,这在纯Java中是不可能的。
- Jire的泛型泛型总是内联的,所以从Java中,它们看起来像普通类引用。
- 这就是我所说的stackoverflow.com/questions/34762029/…
- Intellij IDEA 2016.2:菜单/工具/Kotlin/显示Kotlin字节码,然后单击反编译按钮
- @vadzim反编译按钮在哪里?我可以让它显示字节码,但找不到按钮,并且Kotlin工具反编译菜单选项被禁用,即使在反编译之后
- @ycomp,尝试另一个简单类。或者SDK设置可能有问题。我猜不出更好。
你可以去kotlin >工具>节目kotlin字节码
To convert a Kotlin source file to a Java source file you need to (when you in Android Studio):
出版社cmd - shift - a on a Macshift a出版社ctrl -或-在Windows机器。
行动型:你要找的Kotlin BytecodeShow Kotlin Bytecode从菜单选择。
大学出版社DecompileKotlin Bytecode按钮上的面板。
现在你可以反编译Java文件的文件在一kotlin池旁的标签:
希望这帮助。
一个kotlin编译字节码编译,然后去到Java。我kotlin编译器和编译的编译和CFR。
我的项目在这里。
这让我在编译本:
1 2 3 4
| package functionsiiiandiiilambdas.functions.p01tailiiirecursive
tailrec fun findFixPoint (x : Double = 1.0): Double =
if (x == Math. cos(x )) x else findFixPoint (Math. cos(x )) |
本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| 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 );
}
} |
AS路易"和"kotlin CAD源代码Java的字节码> > Java开源"是唯一的解决方案,那么远。
但我想说:我喜欢的方式,它使用jadx for Android反编译。
它允许一个湖在哪里关闭和AS代码,这样的代码是我的"清洁",然后一个IntelliJ IDEA的反编译。
通常,当我需要的任何kotlin湖Java源代码级:I do
- ./gradlew assembleDebug:生成apk
- 使用开放jadx桂:jadx-gui ./app/build/outputs/apk/debug/app-debug.apkapk
在这类作品:Basic IDE功能的GUI文件搜索,点击Go。等。
因此,所有的源代码,可以使用其他工具,然后可以保存样IntelliJ IDEA。
kotlin文件在Android开放工作室
去kotlin ->工具-> kotlin字节码
在新的窗口打开的文件是在一decompile kotlin,点击按钮。它想你的kotlin创建Java等效文件。