我正在尝试使用Luaj + java构建一个控制器.我有以下java类
public class Duck {
public void talk() { System.out.println("Duck quacks!"); }
public void walk() { System.out.println("Duck walks!"); }
}
public class Person {
public void talk() { System.out.println("Person talks!"); }
public void walk() { System.out.println("Person walks!"); }
}
Run Code Online (Sandbox Code Playgroud)
以及控制器的以下lua脚本:
onTalk(obj)
obj:talk();
end
onWalk(obj)
obj:walk();
end
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想定义一个控制器(用lua编写),我将保留所有程序的逻辑,我想将API从该控制器公开到我的java代码.我试图使用以下方法:
ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine engine = sem.getEngineByExtension(".lua");
ScriptEngineFactory factory = engine.getFactory();
// Script defined above
CompiledScript cs = ((Compilable)engine).compile(MY_LUA_SCRIPT);
SimpleBindings b = new SimpleBindings();
b = newSimpletBindings();
LuaValue onWalkHandler …Run Code Online (Sandbox Code Playgroud)