我有這樣Java靜態方法
public class StockCodes
{
public static boolean loaded = false;
public static long lastUpdate = 0;
private static long freq = 1000 * 60 * 60 * 24;
public static HashMap<String, Stock> stockMap = new HashMap<String, Stock>();
public static ArrayList<Stock> getCodes()
{
long now = System.currentTimeMillis();
if ((StockCodes.loaded) && ((now - StockCodes.lastUpdate) < freq))
{
System.out.println(StockCodes.loaded);
return stockList;
}
else
{
HttpFetcher fetcher = new HttpFetcher();
....
log.info("Load " + stockList.size() + " Stocks");
StockCodes.loaded = true;
StockCodes.lastUpdate = now;
return stockList;
}
}
public static void main(String[] args)
{
StockCodes.getCodes();
}
}
類當我運行Java應用程序,它輸出「真」。告訴我們這些股票代碼已經加載。 但是,當我調試Java應用程序,它進入其他。我不明白爲什麼它會以這種方式運行,尤其是爲什麼我第一次運行應用程序時會輸出「true」。可能有人給我一些幫助,謝謝〜
「'....'」中有什麼?可能是'StockCodes.getCodes()'調用? – 2012-04-23 03:58:44
在這兩種情況下 - 你在做什麼?從你告訴我們,這個程序不應該輸出真,但它看起來像通過運行main方法進行調試,並且當你在退出之前運行java應用程序'其他的設置了StockCodes = true時。 – dfb 2012-04-23 03:59:56
我沒有看到使用布爾變量的任何優勢。相反,您可以使用init方法(一旦將布爾變量設置爲true狀態,它就會永遠保持真實) – 2012-04-23 04:18:50