在我的 java 应用程序中,当我关闭一个打开的模型时,一些对象没有被垃圾收集。我正在使用 Eclipse MAT 来检测到 GC 根目录的路径,并确保在模型关闭后将引用设置为 null,以便 GC 可以清理内存。
我无法清除以下参考资料(Eclipse MAT 输出的摘录)。
myTree javax.swing.JTree
uiTreeExpansionListener, keyListener, focusListener javax.swing.plaf.basic.BasicTreeUI$
HandlerpressedPath javax.swing.tree.TreePath
lastPathComponent myClass
如果myTree (JTree) 没有重置/清除侦听器中的值,则在lastPathComponent中维护对myClass对象的引用,并且它不会被垃圾收集。
关于如何告诉树不维护引用的任何想法?
编辑:我已经使用以下方法来清除引用,但它并没有清除所有(上面提到的)引用。
公共无效清除(){
取消编辑();
全部收缩();
清空选项();
clearToggledPaths();
重置键盘操作();
fireTreeCollapsed(null);
}