Java if语句currentTimeMillis,检查是否已过特定时间
我遇到了一个奇怪的问题。我正在尝试检查当前时间是否大于powertimer。当我运行该方法时,if语句返回true,即使Java if语句currentTimeMillis,检查是否已过特定时间,java,if-statement,long-integer,Java,If Statement,Long Integer,我遇到了一个奇怪的问题。我正在尝试检查当前时间是否大于powertimer。当我运行该方法时,if语句返回true,即使powerup.getPowertimer()-System.currentTimeMillis()大于0,我通过打印结果来测试该值 this.powertimer = System.currentTimeMillis() + 10000; public long getPowertimer() { return this.powertimer; } if ((pow
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);
}
有人知道如何解决这个问题吗?要检查当前时间是否“超过”了
powertimer
超时,您需要
if (System.currentTimeMillis() > powerup.getPowertimer()) {
...
}
请注意,您的线路:
if ((powerup.getPowertimer() - System.currentTimeMillis()) > 0)
相当于
if (powerup.getPowertimer() > System.currentTimeMillis())
^
|
wrong direction of inequality
你的减法走错了方向。这样做:
if (System.currentTimeMillis() - powerup.getPowertimer() > 0)
永远记住这一点:
增量=最终-初始
多亏了我的高中物理老师杰夫·鲍威尔,这颗我一生中经常使用的小宝石