创建具有现有持续时间的番石榴秒表实例

时间:2016-01-08 15:40:26

标签: java guava

我们正在使用Guava Stopwatch计算项目中的某些代码块。

我们遇到过这种情况,这种情况会发生在外部的闭源组件中。我们能够以毫秒格式提取时序,但仍然希望使用Stopwatch toString()来格式化数据,以便无论时间源如何都能保持标准

但是,toString()显然是基于Stopwatch的内部状态,实际执行格式化的方法(chooseUnit()abbreviate())是{ {1}}。

我发现实现我们想要的唯一方法是以下 - 有更好的方法吗?

private

我们正在使用Guava 18.0。

回应@RC:我可以复制方法 - 毕竟它是所有开源的。但这意味着重复代码,这对于维护来说并不是很好,而且当前使用String executeTimeAsString = Stopwatch.createStarted(new Ticker() { boolean firstRead = true; @Override public long read() { if (firstRead) { firstRead = false; return 0L; } return TimeUnit.MILLISECONDS.toNanos(durationInMilliseconds); } }).stop().toString(); 的所有代码都需要迁移到这个新的实用程序方法,或者保留在Stopwatch上。在Google更改Stopwatch的{​​{1}}方法之前,这是正常的。

0 个答案:

没有答案