清除matlab嵌套回调中引用的java对象

清除matlab嵌套回调中引用的java对象,java,swing,matlab,memory-leaks,Java,Swing,Matlab,Memory Leaks,我的代码是一个GUI,包含几个基于java的UI JIDE组件、自定义java类和jTable 以下是我的代码片段: %%第一桌。 %加载自定义java类参数TableModel扩展了DefaultTableModel % ... %%第二张表-吉德大厦物业表 PropertyTableList=java.util.ArrayList; %创建第一个属性 MyProp=javaObjectEDTcom.jidesoft.grid.DefaultProperty; MyProp.setName'T

我的代码是一个GUI,包含几个基于java的UI JIDE组件、自定义java类和jTable

以下是我的代码片段:

%%第一桌。 %加载自定义java类参数TableModel扩展了DefaultTableModel % ... %%第二张表-吉德大厦物业表 PropertyTableList=java.util.ArrayList; %创建第一个属性 MyProp=javaObjectEDTcom.jidesoft.grid.DefaultProperty; MyProp.setName'TypeOfAnalysis'; sethandleMyProp、'CallbackProperties'、'PropertyChangeCallback'、{@PropCB}; PropertyTableList.addMyProp; %建筑表 PropertyTableModel=javaObjectEDTcom.jidesoft.grid.PropertyTableModelPropertyTableList; PropertyTableGrid=javaObjectEDTcom.jidesoft.grid.PropertyTablePropertyTableModel; PropertyPane=javaObjectEDTcom.jidesoft.grid.PropertyPanePropertyTableGrid; [~,mPropertyPane]=javacomponentPropertyPane[0,0,1,1],图; SetmPropertyPane,'Units','normalized','Position',[0,0,1,1] %假回调,属性已更改 混合动力汽车 disp'PropCB' 终止 当我关闭主图形并在命令窗口中调用clear java时,会发出以下警告:

警告:ParameterTableModel类的对象存在-未清除java

如果我没有将回调附加到MyProp,则不会再发出警告。 我找到的唯一解决方法是调用:

setMyProp.handle'CallbackProperties','PropertyChangeCallback',[] 在图中的CloseRequestFcn中。但这并不令人满意,因为我的整个GUI中有数百个这样的属性

我发现这个问题与我的问题有关,但没有真正的答案:

您的回调是否需要嵌套?只要存在对java类的引用,它就不会被清除。谢谢Navan。它不必嵌套,但这样做大大简化了编码。。。。最终我想找到一种方法让它嵌套!