如你所知,如果你尝试.start()在org.apache.commons.lang3类中已经启动的秒表它崩溃说它已经开始了。停止它同样如此。 有没有更简洁的方法(除了尝试捕获)来处理这个问题。有点像c#,如果秒表已经启动它只是忽略语句。 我对LibGDX框架的声音效果也有这个问题。 有任何想法吗? 非常感谢!
答案 0 :(得分:0)
如果手表未启动,该方法应返回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();
}
希望它有所帮助。