我无法理解为什么下面的代码执行两个不同的返回行:
public static QuotazioneInfo load(QuotazioneInfo quotazione) {
QuotazioneInfo quotazioneInfoCached = quotazioniCached.get(quotazione.getTitolo());
if(quotazioneInfoCached != null){
long ultimoAggiornamento = new Date().getTime() - lastUpdated.get(quotazione.getTitolo()).getTime();
long DIECI_MINUTI = 600000;
if(ultimoAggiornamento < DIECI_MINUTI)
return quotazioneInfoCached; <-- Debugger passing HERE
}
HttpURLConnection urlConnection = null;
try {
// [cut]
lastUpdated.put(quotazione.getTitolo(), new Date());
quotazioniCached.put(quotazione.getTitolo(), quotazione);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (urlConnection != null)
urlConnection.disconnect();
}
return quotazione; <-- And also HERE
}
使用调试器我看到它将执行两个返回行代码,但第二个返回一个错误的值。为什么会这样?
由于