Lua file operation. The object passed by Java calls the object containing the string parameter. #23

Closed
opened 2018-11-17 06:34:29 +00:00 by lozn00 · 1 comment
lozn00 commented 2018-11-17 06:34:29 +00:00 (Migrated from github.com)

:org.luaj.vm2.LuaError: chunkname:40 bad argument: userdata expected, got string

我应该怎么把 lua 字符串传递给msgitem对象。 我能使用item.getMessage()够获取java对象字符串,但是我无法设置lua字符串给java对象。 如果实现自动databind呢?
1.I pass the Lua string to the msgitem java object get errors,
2.I can use item. getMessage () to get the Java object string, but I can't set the Lua string to the Java object. What if automatic databind is implemented?

errordetails

:org.luaj.vm2.LuaError: chunkname:40 bad argument: userdata expected, got string
	at org.luaj.vm2.LuaValue.argerror(Unknown Source)
	at org.luaj.vm2.LuaValue.checkuserdata(Unknown Source)
	at org.luaj.vm2.lib.jse.JavaMethod$Overload.call(Unknown Source)
	at org.luaj.vm2.LuaClosure.execute(Unknown Source)
	at org.luaj.vm2.LuaClosure.onInvoke(Unknown Source)
	at org.luaj.vm2.LuaClosure.invoke(Unknown Source)

Lua code

function onReceiveMsgIsNeedIntercept(msgitem, aiteList, hasAite, hasAiteMe)

        msgitem.setMessage("test !")    --     40  is error line 


Java Code


                    Varargs invoke = funcValue.invoke(new LuaValue[]{LuaUtil.createLuaValueByObj(item) });

                    return invoke.arg1().checkboolean();//

item Obj Class


public class MsgItem {


    public String getNickname() {
        return nickname;
    }

  public MsgItem setMessage(String message) {
        this.message = message;
        return this;
    }


**:org.luaj.vm2.LuaError: chunkname:40 bad argument: userdata expected, got string** 我应该怎么把 lua 字符串传递给msgitem对象。 我能使用item.getMessage()够获取java对象字符串,但是我无法设置lua字符串给java对象。 如果实现自动databind呢? 1.I pass the Lua string to the msgitem java object get errors, 2.I can use item. getMessage () to get the Java object string, but I can't set the Lua string to the Java object. What if automatic databind is implemented? errordetails ``` :org.luaj.vm2.LuaError: chunkname:40 bad argument: userdata expected, got string at org.luaj.vm2.LuaValue.argerror(Unknown Source) at org.luaj.vm2.LuaValue.checkuserdata(Unknown Source) at org.luaj.vm2.lib.jse.JavaMethod$Overload.call(Unknown Source) at org.luaj.vm2.LuaClosure.execute(Unknown Source) at org.luaj.vm2.LuaClosure.onInvoke(Unknown Source) at org.luaj.vm2.LuaClosure.invoke(Unknown Source) ``` Lua code ``` function onReceiveMsgIsNeedIntercept(msgitem, aiteList, hasAite, hasAiteMe) msgitem.setMessage("test !") -- 40 is error line ``` Java Code ``` Varargs invoke = funcValue.invoke(new LuaValue[]{LuaUtil.createLuaValueByObj(item) }); return invoke.arg1().checkboolean();// ``` item Obj Class ``` public class MsgItem { public String getNickname() { return nickname; } public MsgItem setMessage(String message) { this.message = message; return this; } ```
lozn00 commented 2018-11-17 07:23:19 +00:00 (Migrated from github.com)

. modify to :

. modify to :
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: open-autonomous-connection/luaj#23