出于某种原因,我可以在程序中获得开始时间和停止时间(通常相差3毫秒),但是当我打印getElapsedTime()
方法的结果时,它总是返回0。列出的代码上方是创建名为StopWatch
的{{1}}对象。
也许圆角有问题?
也许sortTime
方法本身存在问题?
getElapsedTime()
例如,当我运行程序时,结果是:
1442877972466
1442877972469
经过的时间是:0
答案 0 :(得分:4)
您正在创建与类变量同名的局部变量:
long start() {
long startTime = System.currentTimeMillis();
return startTime;
}
在此函数中使用long startTime
会使名为startTime
的类成员的不同的局部变量。将其更改为:
long start() {
startTime = System.currentTimeMillis();
return startTime;
}
答案 1 :(得分:3)
startTime
和endTime
已被重新声明/隐藏为局部变量,实例字段的默认值(0
)
long start() {
long startTime = System.currentTimeMillis();
return startTime;
}
long stop() {
long endTime = System.currentTimeMillis();
return endTime;
}
相反,请使用实例字段...
long start() {
startTime = System.currentTimeMillis();
return startTime;
}
long stop() {
endTime = System.currentTimeMillis();
return endTime;
}