0
如何覆盖luabind类__finalize方法?如何覆盖luabind类__finalize方法?
试图做这样的方式:
class A
function A:__init()
end
function A:__finalize()
end
local original_finalize_function = A.__finalize
A.__finalize = function(...)
-- some custom logic
if original_finalize_function then
original_finalize_function(unpack(arg))
end
end
local a = A
a = nil
collectgarbage('collect')
但仍卢阿只调用原有的终结。它确实适用于__init方法,但是:
local original_init_function = A.__init
A.__init = function(...)
if original_init_function then
original_init_function(unpack(arg))
end
end
另外我试过重写getmetatable(A).__ finilize。也没有帮助。
我该如何重写它?提前致谢。
不知道。在__gc之前调用__finalize。我试图覆盖它,但遇到了崩溃。来自lua的参考:“__gc ...(只能从C侧设置)”。 * Metatable for class:* __index,__newindex,__luabind_classrep(true),__gc,__call。 * 1,__eq,__mul,__pow,__index,__call,__unm,__concat,__len,__newindex,__lt,__div,__tostring,__luabind_class(true),__gc,__le,__sub,__add – kFk 2010-06-21 08:59:45