Skip to content

关于callMethod调用 #16

Open
Open

Description

@kingsollyu

java中如何调用lua里对象的方法?lua代码如下

App={}

function App:onCreate ()
	print('Hello World');
end

java中去调用lua中App:onCreate方法,目前我尝试有下面两个方法,请问该如何去写?

// 这种方法可以调用,但是无法传递参数
_luaContext.evalScript("App.onCreate()")

// 想使用callMethod但是无法调用,没有任何输出
_luaContext.callMethod("App.onCreate", null)

Activity

  1. vimfung commented on Mar 27, 2018

    @vimfung
    Owner

    第一种方法是可行的,如果参数参数是基础类型,那么可以直接通过拼接脚本的形式来传递参数,如果是要传递原生对象则此方式行不通。可以调整为下面方式:

    LuaValue obj = _luaContext.evalScript("App");
    LuaFunction func = _luaContext.evalScript("App.onCreate").toFunction();
    func.invoke(new LuaValue[]{obj, new LuaValue(1024)});
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions