为什么Jdk DateFormat使用StringBuffer而不是StringBuilder?

2 java simpledateformat

我检查了Jdk19源代码,我注意到DateFormat在将Date格式化为String时总是使用StringBuffer。难道不应该是 StringBuilder 因为它更快吗?

Tho*_*ger 6

这是因为在编写时DateFormat(Java 1.1)还没有类StringBuilder(从 Java 1.5 开始才存在)。

如果这StringBuffer是一个实现细节,那就没有问题了。

DateFormat有两种接受并返回 a 的方法StringBuffer

重写这些方法以接受并返回 aStringBuilder会破坏现有代码。


请注意(正如 Johannes Kuhn 所指出的那样)这两个方法中的第一个是由抽象基类java.text.Format(也是来自 Java 1.1)指定的,因此更改它会产生更大的影响。