在Android中将Java与Kotlin结合

我在Android应用程序开发中从Java稍微转移到Kotlin,但是有些情况下我不想在Kotlin中编写代码,并希望用Java编写这些特定的案例:

  • Kotlin删除了findViewByIds额外用法,这是省力的
  • 我知道它现在是null-safety ,相反的Java总是触发与NullPointerException
  • 还提供了Lambda表达式以及许多其他功能。

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

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

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

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

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

要在java类中使用kotlin代码,只需像使用其他java类一样使用该类即可

你可以用companion对象创建一个java类似的静态变量。

您可以使用对象轻松地在Kotlin中创建单身人士

在我kotlin之后。 我把所有的代码都迁移到了Kotlin。

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

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

简单的例子是:

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

等于

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

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

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

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