臭名昭著的 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中文网其他相关文章!