在我的 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); }