我想用Java脚本运行kotlin代码作为脚本,Java脚本API类似于javascript:
import javax.script.*;
public class EvalScript {
public static void main(String[] args) throws Exception {
// create a script engine manager
ScriptEngineManager factory = new ScriptEngineManager();
// create a JavaScript engine
ScriptEngine engine = factory.getEngineByName("JavaScript");
// evaluate JavaScript code from String
engine.eval("print('Hello, World')");
}
}
Run Code Online (Sandbox Code Playgroud)
或者像这样的类似API.
我在 Android Studio 中打开了一个文件夹,其中包含一个 Kotlin 脚本文件 ( .kts)。我在项目结构中配置了 JDK 作为 SDK(但我没有添加 gradle 文件),并且作为 Kotlin 脚本运行该文件工作正常。然而,语法突出显示仅部分有效,请参阅下面的示例(Linux Mint 19.3 和 AS 4.1.3):
一些缺失的东西:
val unused)to/forEach关键字应为黄色斜体这里究竟发生了什么事?这是某种“后备”模式吗?
有什么方法可以使用普通 Android 项目的“完整”语法突出显示,以便我可以更早地发现错误吗?
作为参考,它“应该”是这样的(粘贴到随机的 Android 项目中):
示例: 在C代码中,可以调用汇编代码的一部分,例如:
int main()
{
//... stuff
__asm
{
lea ebx, hal
mov ecx, [ebx]hal.same_name ;
mov esi, [ebx].weasel ;
}
// .. further stuff
return 0;
}
Run Code Online (Sandbox Code Playgroud)
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; …Run Code Online (Sandbox Code Playgroud)