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