在LUA中如何調(diào)用JAVA方法
在LUA中如何調(diào)用JAVA方法是本文要介紹的內(nèi)容,主要是來(lái)學(xué)習(xí)LUA中調(diào)用JAVA方法,在使用luajava開(kāi)源項(xiàng)目中,如何在lua中調(diào)用java的方法,如何將java對(duì)象作為參數(shù)傳遞到lua的函數(shù)中。下面舉例說(shuō)明:
我們新建一個(gè)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);
- }
- }
下面寫一個(gè)java對(duì)象:
- 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;
- }
- }
下面是測(cè)試代碼:
- public static void main(String[] args) {
- LoadTest test = new loadTest("function");
- System.out.println(call.test.getA());
- }
這樣,我們就可以將test對(duì)象傳遞到下面的lua代碼中:
- function.lua:
- function create(M)
- M:setA("this is a")
- end
小結(jié):在LUA中如何調(diào)用JAVA方法的內(nèi)容介紹完了,希望通過(guò)本文的學(xué)習(xí)能對(duì)你有所幫助!