首页 >Java >java教程 >为什么 Java 臭名昭著的 Date API 会犯下如此历史性的错误?

为什么 Java 臭名昭著的 Date API 会犯下如此历史性的错误?

DDD
DDD原创
2024-12-22 19:28:16386浏览

Why Did Java's Infamous Date API Become Such a Historical Blunder?

臭名昭著的 Java 日期 API:历史性错误

Java 日期 API 因其恶名而闻名,一直受到多个缺陷的困扰,这些缺陷使其成为 Java SDK 中臭名昭著的组件。其中包括它的可变性、日期时间戳而不是日期本身的错误表示,以及日期组件和 Date 对象之间缺乏直接转换。此外,Calendar 类被认为很笨重,并试图将多个日历系统合并到一个类中。

人们对这些明显的问题是如何进入 Java SDK 的感到好奇。尽管这些缺点表面上很简单,尤其是 Date 类的可变性,但这些问题如何逃避检测仍然是个谜。

根据消息来源,著名的 Java 程序员常见问题解答,版本 07.X.1998,由 Peter van der Linden 撰写,简洁地解决了这个问题:

“类 Date 代表时间上的特定瞬间,精度为毫秒。这个类的设计是一个非常糟糕的笑话 - 这是一个发人深省的例子,说明即使是优秀的程序员也会搞砸。”

作者继续批评 Calendar 类及其 GregorianCalendar 子类,称它们为“过度设计的垃圾” Taligent。

早期 JDK 类(包括 Date)可变性背后的基本原理被归因于错误的优化。其目的是鼓励对象重用并避免不必要的复制,但这种方法可能不适用于当代的虚拟机。

尽管有许多缺点,Java 日期 API 仍然存在于 SDK 中,这对潜在的陷阱提出了清醒的提醒API 设计的局限性,即使是最有经验的程序员也难免会犯错误。

以上是为什么 Java 臭名昭著的 Date API 会犯下如此历史性的错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn