Luaj newInstance("java.lang.Byte") 返回 java.lang.Integer

使用 LuaJ 时,我尝试调用需要 Byte 参数的 java 方法。但是当我使用 luajava.newInstance("java.lang.Byte","2") 时,它却变成了 java.lang.Integer,并导致错误。

java.lang.ClassCastException: class java.lang.Integer cannot be cast to class java.lang.Byte (java.lang.Integer and java.lang.Byte are in module java.base of loader 'bootstrap')

我不能修改 java 方法以进行强制类型转换。我怎样在 lua 中获得一个 Byte 实例?

编辑:该方法在 minecraft 源代码中,我找不到该实现。所以我编写了一个方法进行测试。

java:

    public static String GetType(Object obj){
        return  obj.getClass().toString();
    }

lua:

print(MyJavaClass:GetType(luajava.newInstance("java.lang.Byte","2")))

结果是 "class java.lang.Integer"

点赞