Class 如何重写luabind类uu finalize方法?

Class 如何重写luabind类uu finalize方法?,class,scripting,lua,luabind,Class,Scripting,Lua,Luabind,如何重写luabind类\u 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_finaliz

如何重写luabind类\u 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')
但lua仍然只调用原始终结器。它确实适用于uu init方法,但是:

local original_init_function = A.__init
A.__init = function(...)
 if original_init_function then
  original_init_function(unpack(arg))
 end
end
此外,我还尝试覆盖getmetatable(A)。\uu finilize。这也没用


我怎样才能覆盖它?提前谢谢。

只是一个猜测,但是否只需转到
\uu gc


否则,请尝试在元表上迭代,以尝试找出luabind正在做什么:
对于getmetatable(myobject)中的k,v,do print(k,v)end

不知道__finalize在_gc之前调用。我试着去控制它,但它崩溃了。来自lua引用:“\uuuu gc…(只能从C端设置)。”类的元表:\uuuu index、\uuuuu newindex、\uuuuuluabind\u classrep(true)、\uuuu gc、\uuu调用。对象的元表(类intstance):1、\uuuuu eq、\uuuu mul、\uuuu pow、\uuuu index、\uuuu调用、\uuuuuunm、\uuuuu concat、\uuuuu len、\uuuuuuuu newindex、\uuuuuuuuuu lt、\uuuuuuuu div、\uuuuuuu tostring、\uuuuu luabind\uu类(true)、\uuuuuuuuu gc、\uuuuuu le、\uuuuu sub、\uu sub、