私のJavaアプリケーションでは、開いているモデルを閉じると、一部のオブジェクトがガベージコレクションされません。Eclipse MATを使用してGCルートへのパスを検出し、モデルを閉じた後に参照がnullに設定されていることを確認して、GCがメモリをクリーンアップできるようにします。
以下の参照(Eclipse MAT出力からの抜粋)をクリアできません。
myTree javax.swing.JTree uiTreeExpansionListener、keyListener、focusListener javax.swing.plaf.basic.BasicTreeUI $ Handler PressedPath javax.swing.tree.TreePath lastPathComponent myClass
myTree(JTree)がリスナーの値をリセット/クリアしない場合、myClassのオブジェクトへの参照がlastPathComponentに保持され、ガベージコレクションされません。
参照を維持しないようにツリーに指示する方法について何かアイデアはありますか?
編集:参照をクリアするために次のメソッドを配置しましたが、すべての(上記の)参照をクリアするわけではありません。
public void clear(){ cancelEditing(); CollapseAll(); 明確な選択(); clearToggledPaths(); resetKeyboardActions(); fireTreeCollapsed(null); }