当我修改代码时,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为空。
那么,它是如何发生的?
答案 0 :(得分:0)
我认为代码是一个静态变量,它将在类加载器加载类时初始化,因此当您重新发布应用程序时,代码将被重置。您最好将这些项重新添加到代码映射中。