在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