使用自定义Java对象回调后,matlab对象仍在内存中
我有一个内存泄漏的问题。 我正在创建一个jLabel对象,它被包装在MATLAB类中。 我正在使用所有集合/集合的句柄来防止问题和内存泄漏
我正在使用以下代码为jLabel设置MouseExitedCallback。这是一个类的方法:
function SetMouseExitedCallback (obj, exitcallback)
set (obj.hLabel, 'MouseExitedCallback', exitcallback)
end
此方法是从另一个类调用的,该类实际上包含MouseExitedCallback的代码。 在该类中,它被称为:
obj.tooltip.SetMouseExitedCallback (@(src, event)obj.MouseExited);
我遇到的问题是,如果我添加最后一行,如果我尝试编辑项目中的文件,它会告诉我jLabel类仍然在内存中。 我能做些什么来防止这种情况
# 1 楼答案
首先我的想法是
它在delete(析构函数)方法中被删除。这不起作用,因为从未调用析构函数。实际上,也从未为另一个类调用过析构函数,即定义了实际MouseExited()回调的类
最后起作用的是:
在中,选择隐藏工具提示的方法。它与Mouse Exited()方法在同一个类中定义。 然后在应用程序关闭后,VM调用析构函数并销毁对象