我正在进行一些计算 - 我一直使用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。
答案 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
}