我有很多使用BigDecimal
类的代码,但我讨厌它笨拙的接口。
我为了使用整数而减轻BigDecimal
的痛苦,创建了一个帮助类,其中包含以下静态方法:
compare(BigDecimal first, int second)
divide(BigDecimal dividend, BigDecimal divisor, int scale)
divide(BigDecimal dividend, int divisor, int scale)
divide(int divident, int divisor, int scale)
multiply(BigDecimal first, BigDecimal second, int scale)
multiply(BigDecimal first, int second, int scale)
multiply(int first, int second, int scale)
zeroPad(BigDecimal value, int totalLength, int scale)
那就是我现在需要的一切,代码比以前更易读了一些。但是,我读到静态方法是一件“坏”事情,它们不遵循OO原则。然而,如果我扩展
BigDecimal
,我将定义一个新类型,因此我必须重新定义所有方法来将它们与我的对象包装起来,否则我将无法使用增强方法的结果。 这似乎并不明智。你会如何解决这个问题?
BigDecimal
没有内置的.divide(BigDecimal dividend, int divisor)
方法。你上一次需要用小数除以什么时候?在我的代码计算中,我从来没有除法以外的除数。 (并不是说这种情况不存在,但是int
作为除数似乎是最可能值得包括在标准库中的场景)。 - ryvantage