当前位置: 首页 > 知识库问答 >
问题:

将Kotlin文件转换为java、向其添加java代码并转换回Kotlin是否与直接向Kotlin文件添加代码相同?

裴良弼
2023-03-14

我想为Github上的静态编程语言android项目做出贡献,但我不知道静态编程语言。假设我将静态编程语言代码转换为Java在Android Studio中使用'Decomload',将我自己的java代码添加到转换的文件中,然后将编辑的文件转换回静态编程语言。如果我直接向其添加代码而不转换为java,那么生成的静态编程语言代码是否相同?如果我想在不了解静态编程语言的情况下为静态编程语言项目做出贡献,这是可行的策略吗?

共有3个答案

章昊
2023-03-14

正如其他人所说,将Kotlin转换为Java只是为了在Java中编辑代码,然后再将其转换回Kotlin,没有任何意义。如果您只是想编辑现有的Kotlin代码,那么您应该学习Kotlin并编辑Kotlin代码。

但是,由于可以从Kotlin无缝地调用Java,如果您有一些非常棒的Java库或类,可以真正填补现有Kotlin项目中的空白,那么您可以直接贡献Java代码。假设项目的目标不是Kotlin Native,也不是严格禁止Java,他们可以利用您现有的Java代码,然后在需要修改时将其转换为Kotlin。

许多组织都遵循这样一个公式,即所有新代码都将用Kotlin编写,而现有Java代码只有在需要更改时才能转换为Kotlin,因此Kotlin项目可能包含或至少通过引用库使用Java代码是完全合理的。

沈弘盛
2023-03-14

我同意zsmb13。

执行以下步骤不是一个好主意:

    检查静态编程语言字节码
  1. 将字节码转换为Java
  2. 编辑Java代码
  3. 将Java代码转换为静态编程语言

你最终会得到一些近乎胡说八道的东西,你肯定不会得到干净的、惯用的Kotlin代码。

如果您有Java开发方面的背景,那么不需要很长时间就可以熟悉Kotlin。我发现它是一种非常干净和富有表现力的语言,它删除了Java中许多不必要的样板文件。

全丰
2023-03-14

Kotlin反编译器不用于将Kotlin代码转换回Java并实际使用该代码。这是为了让您了解Kotlin代码编译成什么字节码,因为大多数人无法直接读取字节码,所以只能使用熟悉的Java语法。反编译的Java代码如果不进行额外的修复工作,通常甚至不可执行。

Java-to-Kotlin编译器旨在从现有的Java代码中为您提供可工作的Kotlin代码,然而,即使这样也不能生成漂亮的、惯用的Kotlin。

结合这两个不完美的转换(如果它以某种方式工作)不会让你得到原始的静态编程语言代码,只是你的新修改,它可能会把所有转换的代码弄得一团糟。对于一个模拟,把它想象成用谷歌翻译通过几种不同的语言翻译一个句子,然后回到原来。

如果您希望为使用Kotlin的开源项目做出贡献,那么只学习Kotlin就更容易、更可行。如果您已经了解Java,那么很容易学会它。

 类似资料:
  • 我有如下java代码: 我使用Android Studio选项“转换为Kotlin”对其进行了转换 下面是它的外观: IDE现在在这里强调了'add'方法: 它说: 未解决的引用:添加 我怎样才能解决这个问题? 更新: 这是我的转换函数: 示例用法:

  • 我想创建一个兼容Android和桌面的Kotlin项目。此项目需要绑定到C库。 我的理解是,我应该创建一个Kotlin多平台项目,并有一个公共代码,用JNI封装C库。 但是,静态编程语言/Native允许更轻松地与C库互操作,所以我想使用它。但是似乎静态编程语言/Native是一个平台(等于jvm或android),所以它不能用作通用代码。 有没有办法做我想做的事?我找不到任何简单的例子来做到这一

  • 有谁能帮我把Android Studio中的Kotlin代码转换成Java吗? 我经历了以下过程: 工具>>Kotlin>>将Kotlin反编译为Java

  • 这是我试图转换成java的代码,但我不理解它,实际上我得到这段代码作为一个答案,但他/她用kotlin给我

  • 问题内容: 我有一个Kotlin源文件,但我想将其转换为Java。 如何将Kotlin转换为Java源代码? 问题答案: 正如@Vadzim所说,在IntelliJ或Android Studio中,你只需执行以下操作即可从kotlin获取Java代码: Menu > Tools > Kotlin > Show Kotlin Bytecode 点击Decompile按钮 复制Java代码 更新: 使

  • 所以我想试着转换我们的后端API源代码,它是用Java编写的,看看它看起来怎么样(IIRC在转换之前有一个预览),但是一旦我这样做了,它就自动开始转换所选文件夹中的所有文件,最后它要求代码更正,我回应说不,因为我想取消它,现在我被一个破碎的代码库卡住了,除了: 恢复到上次提交的git并重新实现从我这边完成的所有更改(如果在转换之前提交,我本可以阻止它,但哦,好吧) 继续使用Kotlin编写代码,但