我有這樣一段代碼:的Java 7:IF條件觸發時假
void timerCountDown(){
while(RaftNode.getTimeoutVar()){
long x = System.currentTimeMillis();
if(x >= RaftNode.limit){
System.out.println(x);
System.out.println(RaftNode.limit + " THIS SHOULD BE LESS THAN");
System.out.println(System.currentTimeMillis() + " THIS");
System.out.println("TIMED OUT");
raft.RaftNode.setTimeoutVar(false);
nextRandomTimeOut();
raft.RaftNode.onTimeOut();
}
}
}
所以基本上,這是一個超時功能和超時被另一條件刷新。我的問題是x> = RaftNode.limit條件保持觸發,即使它是false(通過打印語句)。
我的控制檯輸出:
1431532870542
1431532872508 THIS SHOULD BE LESS THAN
1431532870542 THIS
所以X的確是當前的時間,但即使它是小於限值時,將觸發條件。
我不知道爲什麼!
限VAR是
public static long limit;
所以沒有什麼花哨這裏
您是否嘗試附加調試器? – StormeHawke
有些東西可能會改變比較和打印語句 – Kon
@bluebrain之間的界限,他正在同時打印! –