为什么java.time.Period没有构造函数?

时间:2018-06-24 23:00:14

标签: java time api-design period

相反,必须使用Period.of(int,int,int)或同一方向上的其他静态方法。

这背后的原因是什么?

2 个答案:

答案 0 :(得分:2)

主要原因-它是util类,大多数util类应以静态方式使用(至少Java架构师希望如此)。您可以将其与使用java.lang.Math进行比较。

我建议第二个原因-这是反射和序列化。我认为处理Period.class更为方便,但这仅是建议。在实现内部,它们具有静态方法create(),并且始终使用create()而不是构造函数。

您还可以查看源代码。例如,在这里:{{3}}

large_dataset = ...
small_dataset = large_dataset.take(10)

答案 1 :(得分:-1)

期间是最后一堂课,因此无法扩展,因此每个人都可以认为期间是不可变的。私人承包商是确保正确创建期间的另一种方法。