Java LuaJ是否支持uu gc元方法功能
在一些个人(琐碎的)项目上试用LuaJ时,我发现我似乎无法在表元表中使用Java LuaJ是否支持uu gc元方法功能,java,lua,luaj,Java,Lua,Luaj,在一些个人(琐碎的)项目上试用LuaJ时,我发现我似乎无法在表元表中使用\uu gc,如下例所示: do local tbl = {id="tblID"} setmetatable(tbl,{__gc=function(self) print("gc'd :"..self.id) end }) print(tbl.id) end collectgarbage('collect') 虽然我知道LuaJcollectgarbage()中有一个冗余函数调用,但由于LuaJ依
\uu gc
,如下例所示:
do
local tbl = {id="tblID"}
setmetatable(tbl,{__gc=function(self) print("gc'd :"..self.id) end })
print(tbl.id)
end
collectgarbage('collect')
虽然我知道LuaJcollectgarbage()
中有一个冗余函数调用,但由于LuaJ依赖于Java自己的垃圾收集,所以我将其包括在内,因为其他一些解释器似乎需要它(例如Lua自己的at)
给定的示例似乎在上面提供的在线解释器中起作用。
我目前假设故障要么是以某种方式与LuaJ有关,要么是在程序执行结束时发生的垃圾收集没有对收集的对象调用_gc元方法
我已经尝试在应用程序结束之前为java提供足够的时间来对表进行GC,方法是在调用之后提供一段很长的等待时间,同时调用System.GC()
要向运行时建议垃圾收集,所有这些当前都无效