将函数添加到BigDecimal变量

时间:2016-01-29 06:32:35

标签: java bigdecimal

我正在进行一些计算 - 我一直使用BigDecimal。我为此创建了特殊的util,以便更容易进行比较:

public class BigDecimalUtil {

    public static boolean isZero(BigDecimal value) {
        return value == null?false:value.compareTo(BigDecimal.ZERO) == 0;
    }   

    public static boolean isPositive(BigDecimal value) {
        return value == null?false:value.compareTo(BigDecimal.ZERO) > 0;
    }

    public static boolean isNegative(BigDecimal value) {
        return value == null?false:value.compareTo(BigDecimal.ZERO) < 0;
    }

    public static boolean isEqual(BigDecimal value1, BigDecimal value2) {
        return value1.compareTo(value2) == 0;
    }

    public static boolean isLessThan(BigDecimal value1, BigDecimal value2) {
        return value1.compareTo(value2) < 0;
    }

    public static boolean isMoreThan(BigDecimal value1, BigDecimal value2) {
        return value1.compareTo(value2) > 0;
    }
}

但实际上使用一段时间也不太舒服。 有没有办法直接将这个功能添加到Bigdecimal类?

让我们这样说:

BigDecimal number = new BigDecimal("0");
if(number.isPositive){
    //do something 
}

在这种情况下isPositive是我的函数from util。

2 个答案:

答案 0 :(得分:3)

除非您愿意延长BigDecimal课程,否则无法实现,在这种情况下您可以尝试:

public class BigDecimal2 extends BigDecimal {
    public boolean isPositive() {
        return compareTo(BigDecimal.ZERO) > 0;
    }
    //...
}

答案 1 :(得分:-2)

public class BigDecimalUtil extends BigDecimal {
    // create atleast one constructor<br>
    //override any method you want to modify
}