示例: 在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;
}
}
答案 0 :(得分:5)
Java没有提供将Kotlin中的代码片段或任何其他语言包含到Java文件中的任何语法。但是,这不是完成任务所必需的。您可以在单独的Kotlin文件中将您需要的构造函数定义为工厂函数:
fun MyAlreadyExistingJavaClass() = MyAlreadyExistingJavaClass(0)
如果要定义新方法而不是构造函数,可以使用extension functions。
答案 1 :(得分:0)
我是一名Groovy开发人员,而不是Kotlin开发人员,但它看起来像Kotlin provides a scripting API。可以使用标准Java ScriptEngine API从Java类中调用Groovy,JavaScript和JRuby。你可能想要这样的东西来近似在Java类中内联Kotlin。我说大概是因为它不会像那个汇编示例一样直接运行,但会通过符合ScriptEngine的Kotlin实现。