在LUA中如何调用JAVA方法是本文要介绍的内容,主要是来学习LUA中调用JAVA方法,在使用luajava开源项目中,如何在lua中调用java的方法,如何将java对象作为参数传递到lua的函数中。下面举例说明:
我们新建一个loadScript类,代码如下:
public class LoadScript {
LuaState L;
LoadScript(final String filename){
this.L = LuaStateFactory.newLuaState();
this.L.openLibs();
this.L.LdoFile(filename);
}
void closeScript(){
this.L.close();
}
void runScriptFunction(String functionName,Object obj){
this.L.getGlobal(functionName);
this.L.pushJavaObject(obj);
this.L.call(1,0);
}
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
下面写一个java对象:
class LoadTest{
String a;
LoadScript script;
public LoadTest(String script){
this.script = new LoadScript(script+".lua");
this.script.runScriptFunction("create",this);
}
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
下面是测试代码:
public static void main(String[] args) {
LoadTest test = new loadTest("function");
System.out.println(call.test.getA());
}
- 1.
- 2.
- 3.
- 4.
这样,我们就可以将test对象传递到下面的lua代码中:
function.lua:
function create(M)
M:setA("this is a")
end
- 1.
- 2.
- 3.
- 4.
小结:在LUA中如何调用JAVA方法的内容介绍完了,希望通过本文的学习能对你有所帮助!