Java if语句currentTimeMillis,检查是否已过特定时间

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

我遇到了一个奇怪的问题。我正在尝试检查当前时间是否大于powertimer。当我运行该方法时,if语句返回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);
}

有人知道如何解决这个问题吗?

要检查当前时间是否“超过”了
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)
永远记住这一点:

增量=最终-初始

多亏了我的高中物理老师杰夫·鲍威尔,这颗我一生中经常使用的小宝石