對於我的生活,我無法弄清楚爲什麼我不能讓這種方法進入if語句。在if語句中測試Java Long值。是否0!= 0
protected void foo() {
Date d = new Date();
long now = d.getTime();
long start;
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
start = settings.getLong(FIRST_USE_DATE, 0);
Log.w(this.getClass().getName(), Long.toString(start));
if (start == 0) {
SharedPreferences.Editor editor = settings.edit();
editor.putLong(FIRST_USE_DATE, now);
}
return true; }
請注意,日誌和調試模式顯示「開始= 0」
我也試過
if (start == 0l) {
if (start == 0L) {
我在這裏缺少到底有什麼? 0!= 0?
我正在Eclipse中使用Java進行Android開發。謝謝。
編輯:
@methodin - 沒有抱歉,這是行不通的。
@Aioobe - 我在IF語句下有一個斷點,永遠不會發生。
編輯2:這是我詢問後運行的實際代碼。
protected boolean isDemoExpired() {
Date d = new Date();
long now = d.getTime();
long demoStart;
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
demoStart = settings.getLong(FIRST_USE_DATE, 0);
if (demoStart == 0) {
SharedPreferences.Editor editor = settings.edit();
editor.putLong(FIRST_USE_DATE, now);
System.out.println(Long.toString(demoStart));
return false;
}
return true;
}
if((long)start == 0) – methodin 2010-11-02 13:20:39
您是否在if分支中添加了調試輸出?你確定它沒有進入嗎? – aioobe 2010-11-02 13:21:28
編輯原始帖子以供評論。 – user432209 2010-11-02 13:52:05