在Android中将Java与Kotlin结合使用

时间:2017-09-18 16:54:58

标签: java android kotlin

  

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

  • Kotlin删除了额外的使用费,这是省力的 print(np.mean([est.steps[1][1].feature_importances_ for est in bbc.estimators_], axis=0))
  • 我知道它现在是findViewByIds,而Java总是以null-safety
  • 触发 还提供了
  • NullPointerException个表达式以及许多其他功能。

但是,我的部分代码无法在Kotlin中编写,例如Lambda成员或static字段。

Kotlin注释实际上可以取代那些non-primitive。但是喜欢Java的一些编码功能,并且不想离开它。

  

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

4 个答案:

答案 0 :(得分:15)

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

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

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

答案 1 :(得分:3)

您可以使用随播广告创建类似静态变量的java。

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

我借了kotlin。我已将所有代码迁移到Kotlin。

答案 2 :(得分:1)

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

如果您真的想拥有静态方法/变量,可以使用companion object。您还可以访问创建"真实"使用@JvmStatic在JVM中使用静态方法。

简单样本是:

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

等于

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

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

答案 3 :(得分:0)

您可以在项目中使用Java和Kotlin类和活动。

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