早上好,我有一个自定义类 cBigDecimal,它扩展了类 BigDecimal。我的目标是使用 BigDecimal 和 cBigDecimal 类中的方法(例如“add”或“multiply”,以及自定义函数“percentage”)。问题是“添加”& co。返回 BigDecimal,显然我不能将它转换为 cBigDecimal ......有什么想法吗?提前致谢,洛伦佐
你的cBigDecimal
班级究竟做了什么而BigDecimal
没有呢?
这是一个BigDecimal
完全可以扩展的设计监督。Josh Bloch 在Effective Java 3rd Ed Item 17:“最小化可变性”中说:
不可变类在编写
BigInteger
和BigDecimal
编写时必须是有效的 final并没有被广泛理解,因此它们的所有方法都可能被覆盖。不幸的是,在保持向后兼容性的同时,这无法在事后纠正。
如果您只想向 中“添加一个方法” BigDecimal
,您可以简单地创建一个辅助方法:
static BigDecimal percent(BigDecimal b) {
return b.divide(100); // Or whatever it does.
}
然后,您可以BigDecimal
随处处理普通的 old s。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句