私はこのようなクラスを持っています
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 アプリケーションを実行すると、「true」が出力されます。ストックコードがロードされたことを知らせます。しかし、Java アプリケーションをデバッグすると、else に入ります。このように実行される理由、特にアプリケーションを初めて実行したときに「true」を出力する理由がわかりません。他の誰かが私に助けをくれませんか、ありがとう〜