Eclipse HashSet <string>的包含()在eclipse hot republish </string>之后不匹配

时间:2014-03-28 03:18:43

标签: java eclipse

当我修改代码时,eclipse会用jetty重新发布web应用程序。但是发生了问题。具有相同String的Hashset.contains()返回false!

代码:

private static HashSet<String> code = new HashSet<String>();
public String f1(){ 
    String a = getCode();
    code.add(a);
    return a; //return to webclient(Browser).
}
public void f2(String b){
    //b is read from Browser, same as a
    code.contains(b)
    // it return false! after hot reepublish
    ...
}

HashMap的函数getEntry在debug中返回null,看起来像条目e = table [indexFor(hash,table.length)]; e为空。

那么,它是如何发生的?

1 个答案:

答案 0 :(得分:0)

我认为代码是一个静态变量,它将在类加载器加载类时初始化,因此当您重新发布应用程序时,代码将被重置。您最好将这些项重新添加到代码映射中。