gpt4 book ai didi

java - 天真地用 Clock.systemDefaultZone().millis() 替换 System.currentTimeMillis() 是否安全?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:54:31 27 4
gpt4 key购买 nike

Java 8 引入了 java.time.Clock接口(interface),它应该允许我有效地模拟系统时间调用(太棒了!)。

我想天真地用对 someClock.millis() 的调用替换对 System.currentTimeMillis() 的调用,但我不清楚这些根据 Clock.system* 文档中给出的 caviet,两个时钟实际上将在所有情况下返回相同的值,该文档声明它们使用“...最佳可用系统时钟”。 System.currentTimeMillis() 没有指定任何关于使用最佳可用时钟的类似声明。

最佳答案

嗯,不,你不能保证它会完全一样,因为

The system factory methods provide clocks based on the best available system clock. This may use System.currentTimeMillis(), or a higher resolution clock if one is available

所以它明确声明它可能使用更好的时钟,这意味着它绝对可能不同。

即使您分析了所有现有的实现并发现它们都在使用 System.currentTimeMillis(),您也无法明确保证事情会保持这种状态,因此依赖它是无效的。

这是否足够接近您的目的取决于您的应用程序和个人偏好。

关于java - 天真地用 Clock.systemDefaultZone().millis() 替换 System.currentTimeMillis() 是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30268491/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com