小编Vit*_*nko的帖子

如何将对象传递给公开的luaj函数?

我正在尝试使用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)

java lua callback luaj

8
推荐指数
1
解决办法
4117
查看次数

标签 统计

callback ×1

java ×1

lua ×1

luaj ×1