小编dan*_*dan的帖子

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();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

所以基本上,这是一个超时功能,超时由另一个条件刷新.我的问题是x> = RaftNode.limit条件保持触发,即使它是假的(通过print语句).

我的控制台输出:

1431532870542
1431532872508 THIS SHOULD BE LESS THAN
1431532870542 THIS
Run Code Online (Sandbox Code Playgroud)

因此x确实是当前时间,但即使它小于限制,也会触发条件.

我不知道为什么!

限制变量是

public static long limit;
Run Code Online (Sandbox Code Playgroud)

所以没什么好奇的

java if-statement java-7

5
推荐指数
1
解决办法
143
查看次数

标签 统计

if-statement ×1

java ×1

java-7 ×1