在java.time.period类中,withDays(),withMonths(),withYears()的用途是什么?
我注意到 java.time.Period 类包含一些实例方法,它们的行为与可用的静态工厂方法相同。
-
.withDays()
行为与Period.ofDays()
-
.withMonths()
行为与Period.ofMonths()
-
.withYears()
行为与Period.ofYears()
这些实例方法令人困惑,因为它们会创建一个新的 Period 并返回它们,但没有考虑调用它们的 Period 的状态。
Period p = Period.ofWeeks(3);
p = p.withDays(2);
这似乎是合乎逻辑的,这将返回3周,2天的时间段,但它只返回2天的时间段。这与我调用 .Period.ofDays(2)
此外,还有其他五种没有类似实例方法的静态工厂方法。
那么,这三种实例方法存在是有原因的吗?如果是这样,用例是什么?