2011-11-13 48 views
5

在下面的代碼中if語句的求值爲true但我可以看到它的false
顯然這裏有一個邏輯來解釋這一點,但我不記得它。
2個多媒體作品展示現象:
http://www.youtube.com/watch?v=DFcRfPErfik
http://www.youtube.com/watch?v=NEC04-kLQBEjava爲什麼long值在if語句驗證錯誤

線 「holderCompleated.textInfo.setT ......」 將運行,即使做diffHours == 1
看圖片,diffHours = 1和表達式櫥窗秀false

enter image description here

對於這個問題,一個夏日的可能是:
(Dont是affraid問連最愚蠢的問題:))

這裏有一個畫面,當我進入if statment

enter image description here

+0

你確定if語句將在本次迭代中被採用*? –

+0

所以你說「holderCompleated ...「是即使調試器顯示「diffHours> 1」,如果錯誤也會執行嗎? – foowtf

+0

是的,究竟發生了什麼,看看圖片,再添加一個。壞的人不能添加短片而不是照片來顯示它。是的,我在eclipse中做了一個Clean項目來排除不一致之處 – Erik

回答

3

一些奇怪的事情。即時消息添加Log.d(TAG,...在if語句中,並且調試器正在跨越它,還有一個Log.d(TAG,..就在if語句之前,並且一個就可以了)

也許清理不起作用,你運行的是一些舊代碼,你是否嘗試重新啓動Eclipse?然後刪除並重新導入一些項目?

這也解釋了爲什麼你看到調試器輸入if語句:不是!正在運行的代碼只是與源代碼不同步

+1

是的,最有可能的程序確實不重新編譯,你正在執行舊代碼。 –

+0

剛剛重新啓動計算機並關閉打開的項目,並確保乾淨。同樣的事情發生。另外Log.d(TAG ..裏面的if語句在執行調試時執行,但在LogCat中沒有輸入。想想我需要在某處刷新某些緩存,因爲調試器的日子很糟糕Eclipse版本:Indigo Service Release 1 Build ID: 20110916-0149 – Erik

+0

您試過清潔您的代碼(項目 - >清潔)? – deterb