为了账号安全,请及时绑定邮箱和手机立即绑定

为什么JavaDateAPI(java.util.Date,.Calendar)如此混乱?

为什么JavaDateAPI(java.util.Date,.Calendar)如此混乱?

慕无忌1623718 2019-06-06 14:40:23
为什么JavaDateAPI(java.util.Date,.Calendar)如此混乱?正如大多数人痛苦地意识到的,JavaAPI用于处理日历日期(特别是类)java.util.Date和java.util.Calendar)是一个可怕的烂摊子。从我的头顶上:日期是可变的日期代表时间戳,而不是日期。在日期组件(日、月、年.)之间进行转换不是一种简单的方法。和日期日历使用起来很笨重,并试图将不同的日历系统组合成一个类。这个职位总结得很好,而且JSR-310也说明了这些问题。现在我的问题是:这些类是如何进入JavaSDK的?这些问题中的大多数看起来相当明显(特别是日期是可变的),应该很容易避免。那它是怎么发生的?时间压力?还是只在回首时才会发现这些问题?我意识到这并不是一个严格意义上的编程问题,但我会发现理解API设计是如何如此错误是很有趣的。毕竟,错误总是一个很好的学习机会(我很好奇)。
查看完整描述

3 回答

?
交互式爱情

TA贡献1712条经验 获得超3个赞

Java早期的API不过是他们那个时代的产物。不变性只是在那之后几年才成为一个流行的概念。你说不变性是“显而易见的”。现在也许是真的,但那不是那个时候。就像依赖注入现在是“明显的”,但不是10年前。

同时,创建Calendar对象也很昂贵。

由于向后兼容的原因,它们仍然是这样。也许更不幸的是,一旦认识到错误,就不再推荐旧类,并为未来的所有API创建了新的日期/时间类。这在一定程度上是在JDK 8采用类似于JodaTime的API时发生的(java.time,JSR 310),但实际上太少了,太迟了。


查看完整回答
反对 回复 2019-06-06
  • 3 回答
  • 0 关注
  • 567 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信