私はこの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のapplictionをデバッグすると、elseに入ります。私はなぜこのように動作するのか、特にアプリケーションを初めて実行するときに "真"を出力する理由を理解していません。他の誰かが私に助けてくれました、ありがとう〜
"' .... '"には何がありますか?おそらく 'StockCodes.getCodes()'コール? –
どちらの場合でも、何をしていますか?あなたが私たちに示したことから、このプログラムは本当に出力されるべきではありませんが、メインメソッドを実行してデバッグしているように見え、終了する前にStockCodes = trueを設定する何か他のJavaアプリケーションを実行すると、 – dfb
ブール変数を使用する利点はありません。代わりにinitメソッドを使うことができます(一度Boolean変数を真の状態に設定すると、それは永遠に残っています) –