2014-03-28 32 views
0

當我修改代碼時,eclipse將用jetty重新發布web應用程序。問題發生了。帶相同String的Hashset.contains()返回false!Java HashSet <String>的contains()在eclipse熱重新發布後沒有匹配

代碼:

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,它看起來喜歡項E =表[indexFor(散列,table.length)]; e是空的。

那麼,它是如何發生的?

回答

0

我認爲代碼是一個靜態變量,當類被類加載器加載時它將被初始化,所以當你重新發布你的應用程序時,代碼將被重置。您最好將這些項目重新添加到代碼映射中。

相關問題