Tim*_*eus 2 java lua lua-userdata
我正在尝试向这样的现有用户数据添加一个方法,但这对我来说是一个错误.
local userData = luajava.newInstance("Objects.Block") --creates a userdata from a Java class
userData.newMethod = function()
-- Do stuff
end
Run Code Online (Sandbox Code Playgroud)
我在网站上找到了这个例子,但它也不起作用
local userData = luajava.newInstance("Objects.Block")
local mt = getmetatable(userData)
mt.__index.newMethod = function()
-- Do stuff
end
Run Code Online (Sandbox Code Playgroud)
是否有一种方法/功能从Lua添加到现有的用户数据
如果userdata已经具有分配给__index字段的表的元表,则您发布的第二种方法将起作用.出于安全原因,无法将元数据分配给Lua的用户数据.因此,您必须从Java绑定代码中为userdata分配元表.
lua_newuserdata(L, SOME_SIZE);
luaL_newmetatable(L, "userData.mt");
lua_setmetatable(L, -2);
Run Code Online (Sandbox Code Playgroud)
如果metatable还没有__index表,则创建一个.
local mt = getmetatable(userData)
mt.__index = {
newMethod = function()
print('It works!')
end
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
914 次 |
| 最近记录: |