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')
しかし、lua はまだ元のファイナライザーしか呼び出しません。ただし、__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 をオーバーライドしようとしました。あまりにも役に立ちません。
どうすれば上書きできますか? 前もって感謝します。