Why is Java's BigDecimal class not declared as final?

淺唱寂寞╮ 提交于 2019-12-04 03:49:37

Quote from https://blogs.oracle.com/darcy/entry/compatibly_evolving_bigdecimal:

However, there is a possible complication here since BigDecimal is not final and since it has public constructors, it can be subclassed. (As discussed in Effective Java, Item 13, Favor Immutability, this was a design oversight when the class was written.)

(emphasis mine).

Since Java has always favored backward compatibility, making it final now is out of question: it would break existing subclasses.

That said, just as when using Date, I would simply assume that no-one ever subclasses BigDecimal, and that BigDecimal should thus be used as if it were truly immutable.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!