我遇到了一个奇怪的问题。我正在尝试检查当前时间是否大于powertimer。当我运行该方法时,if-statement返回true,即使powerup.getPowertimer() - System.currentTimeMillis()
大于0,我通过打印出结果来测试。
this.powertimer = System.currentTimeMillis() + 10000;
public long getPowertimer() {
return this.powertimer;
}
if ((powerup.getPowertimer() - System.currentTimeMillis()) > 0) {
System.out.println(powerup.getPowertimer() - System.currentTimeMillis());
powerup.reversePower(player);
expired.add(powerup);
}
有谁知道如何解决这个问题?
答案 0 :(得分:3)
要检查当前时间是否“超过”powertimer
超时,请执行
if (System.currentTimeMillis() > powerup.getPowertimer()) {
...
}
请注意您的行:
if ((powerup.getPowertimer() - System.currentTimeMillis()) > 0)
相当于
if (powerup.getPowertimer() > System.currentTimeMillis())
^
|
wrong direction of inequality
答案 1 :(得分:1)
你有错误的减法方法。这样做:
if (System.currentTimeMillis() - powerup.getPowertimer() > 0)
永远记住这一点:
delta = final - initial
感谢我的高中物理老师杰夫鲍威尔为我生命中经常使用的这个小宝石。