当我找不到任何api时,如何销毁单个对象

时间:2014-09-12 08:04:44

标签: java gephi

当我使用Gephi-tookkit在java中绘制图形时。但我发现内存泄漏的问题。我使用MemoryAnalyzer来分析转储,它显示了ProjectController使这个问题。 这个类ProjectController在gephi中是单例。

ProjectController pc = Lookup.getDefault().lookup(ProjectController.class);

我想破坏这个课程,我该怎么办?

1 个答案:

答案 0 :(得分:0)

我已经使用java反射解决了这个问题。你可以破解查找类,并将字段更改为null。

public static synchronized void cleanUpLookup(){
    Lookup obj = Lookup.getDefault();
    Field field;
    try {
        field = Lookup.class.getDeclaredField("defaultLookup");
        field.setAccessible(true);
        field.set(obj, null);
    } catch (Exception e){
    }
}