В моем приложении java, когда я закрываю открытую модель, некоторые объекты не собирают мусор. Я использую Eclipse MAT для обнаружения путей к GC root и следя за тем, чтобы ссылки были установлены на null после закрытия модели, чтобы GC мог очистить память.Java JTree: очистить состояние выбора (сбросить ссылки)
Я не могу очистить следующие ссылки (выдержка из MAT-выхода Eclipse).
myTree javax.swing.JTree uiTreeExpansionListener, keyListener, focusListener javax.swing.plaf.basic.BasicTreeUI$Handler pressedPath javax.swing.tree.TreePath lastPathComponent myClass
Если myTree (JTree) не сбрасывает/очистить значение в слушателях, то ссылка поддерживается в lastPathComponent к объекту MyCLASS и это не мусор.
Любая идея о том, как сказать дереву не поддерживать ссылки?
Редактировать: Я поместил следующий метод для очистки ссылок, но он не очищает все (упомянутые выше) ссылки.
public void clear() { cancelEditing(); collapseAll(); clearSelection(); clearToggledPaths(); resetKeyboardActions(); fireTreeCollapsed(null); }
Как вы закрываете модель? – dacwe
Закрытие модели в основном подразумевает, я установил кучу ссылок на нуль. Я проверяю эти ссылки, чтобы увидеть, загружена ли модель. Если значение null, то я не показываю данные модели в своем приложении (GUI). –