0

示例: 在 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;
}

}
4

2 回答 2

5

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

fun MyAlreadyExistingJavaClass() = MyAlreadyExistingJavaClass(0)

如果要定义新方法而不是构造函数,可以使用扩展函数

于 2016-08-08T13:04:05.683 回答
0

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

于 2016-08-08T12:45:43.373 回答