在Java代码中集成Kotlin?

例如:在C代码中,可以调用部分汇编代码,如:

int main() { //... stuff __asm { lea ebx, hal mov ecx, [ebx]hal.same_name ; mov esi, [ebx].weasel ; } // .. further stuff return 0; } 

Java(* .java)文件中的Kotlin代码是否可以实现这样的代码集成?

(我不是在谈论Java中的JNI或C / C ++!)我想用Kotlin语言扩展已经存在的(AndroidStudio-)Java-Source-Code。

 //.. this is *.java file public class MyAlreadyExistingJavaClass { private int memberVar; public MyAlreadyExistingJavaClass() { } // this is Kotlin within *.java file // extend this Java file with this constuctor in KOTLIN ? // would make above default constructor unneccessary. class MyAlreadyExistingJavaClass(number: Int = 0) { memberVar = number; } } 

Java不提供任何语法,用于将Kotlin或其他任何语言的代码片段包含到Java文件中。 但是,这不是完成你的任务所必需的。 您可以简单地在一个单独的Kotlin文件中将您需要的构造函数定义为工厂函数:

 fun MyAlreadyExistingJavaClass() = MyAlreadyExistingJavaClass(0) 

如果你想定义一个新的方法,而不是一个构造函数,你可以使用扩展函数 。

我是Groovy开发人员,而不是Kotlin开发人员,但看起来Kotlin 提供了一个脚本 API。 Groovy,JavaScript和JRuby都可以使用标准的Java ScriptEngine API从Java类中调用。 你会想要这样的东西来近似Kotlin内Java类。 我说近似的,因为它不会像该程序集示例那样直接运行,而是通过符合ScriptEngine的Kotlin实现来传递。