kt文件和java文件_如何将kotlin源文件转换为java源文件

有一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字节码

2c0b62ddb5c9659844a518bbaccfee5d.png

069e2ab6df0a7ec2676a4b0ed0200844.png

ddaf8d5d55ae18cdacbc2432b1514014.png

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机器。

b42c060348f132fa3904fd7e9490d5bd.png

行动型:你要找的Kotlin BytecodeShow Kotlin Bytecode从菜单选择。

31875299856293a5d6f0ff18aee53577.png

大学出版社DecompileKotlin Bytecode按钮上的面板。

e16ef2b38ecf17b32f3072979d5eb043.png

现在你可以反编译Java文件的文件在一kotlin池旁的标签:

adc2864658f9d59b9470671ca2c3d076.png

希望这帮助。

一个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);

}

}

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等效文件。


版权声明:本文为weixin_33585909原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。