处理java秒表启动和停止错误

时间:2014-07-10 14:17:01

标签: java stopwatch

如你所知,如果你尝试.start()在org.apache.commons.lang3类中已经启动的秒表它崩溃说它已经开始了。停止它同样如此。 有没有更简洁的方法(除了尝试捕获)来处理这个问题。有点像c#,如果秒表已经启动它只是忽略语句。 我对LibGDX框架的声音效果也有这个问题。 有任何想法吗? 非常感谢!

1 个答案:

答案 0 :(得分:0)

查看the docs of getTime()

如果手表未启动,该方法应返回0。浏览the source code以验证:

public long getTime() {
    if (this.runningState == STATE_STOPPED || this.runningState == STATE_SUSPENDED) {
        return this.stopTime - this.startTime;
    } else if (this.runningState == STATE_UNSTARTED) {
        return 0;
    } else if (this.runningState == STATE_RUNNING) {
        return System.currentTimeMillis() - this.startTime;
    }
    throw new RuntimeException("Illegal running state has occured. ");
}

所以你可以使用它,而不是try-catch:

if(watch.getTime() == 0L) {
    watch.start();
}

if(watch.getTime() > 0L) {
    watch.stop();
}

希望它有所帮助。