在这个教程中,我们将深入探讨Java 17中引入的InstantSource接口,它提供了当前瞬间的可插拔表示,并避免了对时区的引用。
2. InstantSource接口
正如我们在原始提案和相关问题中看到的,这个接口的第一个目标是创建一个抽象,以替代java.time.Clock提供的时区。它还简化了在测试期间为代码部分创建存根以检索瞬间。
它在Java 17中被添加,以提供一种安全的方式来访问当前瞬间,如以下示例所示:
class AQuickTest {
InstantSource source;
...
Instant getInstant() {
return source.instant();
}
}
大约 6 分钟