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のソースコードにあり、実装が見つかりません。そこで、テストするメソッドを書きます。
ジャバ:
public static String GetType(Object obj){
return obj.getClass().toString();
}
ルア:
print(MyJavaClass:GetType(luajava.newInstance("java.lang.Byte","2")))
そして「class java.lang.Integer」です