【问题标题】:Combine Java with Kotlin in Android [closed]在 Android 中结合 Java 和 Kotlin [关闭]
【发布时间】:2018-02-27 07:13:07
【问题描述】:

在 Android 应用程序开发中,我正在从 Java 稍微迁移到 Kotlin, 但在某些情况下,我不想在 Kotlin 中编码并想要 这些特殊情况用 Java 编写:

  • Kotlin 删除了额外使用的 findViewByIds
  • 我知道现在是null-safety,而Java 总是用NullPointerException 触发
  • 还提供了Lambda 表达式和许多其他功能。

但是,我的一些代码仍然不能用 Kotlin 编写,例如 static 成员或 non-primitive 字段。

Kotlin 注释实际上可以替换那些 static members。但喜欢 Java 的一些编码特性,不想离开。

我的问题是我可以将 Java 和 Kotlin 结合在一起吗?

【问题讨论】:

标签: java android kotlin


【解决方案1】:

如果您的问题是您能否在 java 文件中使用 kotlin 文件,反之亦然,那么答案是肯定的。

如果你问是否可以在 java 文件中使用 kotlin 语法,反之亦然,那么答案是否定的。

要在 java 类中使用 kotlin 代码,您只需像使用任何其他 java 类一样使用该类

【讨论】:

    【解决方案2】:

    您可以在您的项目中拥有 Java 和 Kotlin 类和活动。

    同一个类不能有 Java 和 Kotlin。 您可以使用 Ctrl+Alt+Shift+K 将 Java 文件转换为 Kotlin,或者只需双击 SHIFT 并搜索 Convert Java to Kotlin

    【讨论】:

      【解决方案3】:

      你可以使用companion object创建一个类似java的static变量。

      您可以使用 object 在 Kotlin 中轻松创建 singleton

      在我学习了 kotlin 之后。我已将所有代码迁移到 Kotlin。

      【讨论】:

      • 是的,我可以创建,但是如何将两种语言合并在一起工作
      • 为什么不能互操作。所以你可以从 kotlin 调用 java 代码,反之亦然
      • 您是否必须为 Kotlin 重新编写所有代码,Android Studio 可以将您现有的 Java 代码转换为 Kotlin 吗?我想迁移到 Kotlin,因为我现在正在学习 Swift。我有 4 年的 Java 经验,但我不想再次为我的所有应用编写所有代码。
      • 不要再写了。 Android Studio 将 java 代码转换为 kotlin。 Control + Alt + shift + k,通过这个快捷键你可以将你的java代码迁移为kotlin。但是,您应该进行细微的更改以完成操作。
      【解决方案4】:

      即使它是互操作的,也不能在同一个文件中混合使用 Java 和 Kotlin。

      如果你真的想要静态方法/变量,你可以使用companion object。您还可以使用@JvmStatic 在您的JVM 中创建一个“真正的”静态方法。

      简单示例是:

      companion object {  
          @JvmStatic 
          fun newInstance() ) SampleFragment()
      }
      

      等于

      public static SampleFragment() { return new SampleFragment(); } 
      

      通过使用@JvmStatic,您可以像以前一样使用Java 访问您的静态方法。

      【讨论】:

        猜你喜欢
        • 2015-08-31
        • 1970-01-01
        • 2021-02-11
        • 2019-12-23
        • 1970-01-01
        • 2012-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多