Android-Lua icon indicating copy to clipboard operation
Android-Lua copied to clipboard

pushJavaObject注入对象的类成员类型Integer无法识别

Open jsuisen opened this issue 5 years ago • 1 comments

Java:

    MyBean myBean;
    //测试全局变量参数读写
    @Test
    public void testUpdateMyBean() {
        try {
            Log.d("testUpdateMyBean", "=============== test1");
            LuaState lua = LuaStateFactory.newLuaState();
            lua.openLibs();
    
            myBean = new MyBean();
            myBean.name = "zhang3";
            myBean.age = 18;
    
            System.out.println(myBean);
    
            lua.pushJavaObject(myBean);
            lua.setGlobal("myBean");
    
            String str = Config.getRawString(ctx, R.raw.testupdatemybean);
            System.out.println(str);
            int result = lua.LdoString(str);
            System.out.println("result==" + result);
            String msg = lua.toString(-1);
            System.out.println("msg==" + msg);
    
            lua.getGlobal("myBean");
            myBean = (MyBean) lua.toJavaObject(-1);
            lua.pop(1);
            System.out.println(myBean);
    
            lua.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        Log.d("testUpdateMyBean", "=============== test2");
    }
    
    public static class MyBean {
        private String name;
        private Integer age;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public Integer getAge() {
            return age;
        }
    
        public void setAge(Integer age) {
            this.age = age;
        }
    
        @Override
        public String toString() {
            return "MyBean{" +
                    "name='" + name + '\'' +
                    ", age=" + age +
                    '}';
        }
    }

testupdatemybean.lua:

        myBean:setName('li4')
        myBean:setAge(50)

错误日志:

Invalid method call. No such method.

jsuisen avatar Jul 31 '19 07:07 jsuisen

可能确实存在问题,暂时没时间细看。 暂时直接使用 int?

ichenhe avatar Aug 11 '19 10:08 ichenhe