java – 为什么Number类没有add()或negate()等方法?
那么这是一个关于
Java设计的问题.
为什么java.lang.Number类中没有add()和negate()等方法,但是有一些子类呢? 我的意思是…没有统一性.我可以在Float,Long和其他autoboxeable类上使用or操作符,我可以在BigDecimal或BigInteger(它违反SRP)的情况下使用add()和negate(). 所以如果我们允许这些操作在Byte / Short / Integer / Long(带有自动装箱和运算符)上,那为什么不只是在Number中添加一个抽象的Number()和 有没有理由呢? 解决方法
最重要的是要保持向后兼容性.
您提到的这些方法不在java.lang.Number的第一个版本中,它们需要是抽象的. 并且添加抽象方法将不起作用,因为它将破坏Number的现有第三方子类,因此会破坏向后兼容性. 向后兼容性是现在似乎很明显的很多可能的API改进无法实现的原因. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |