【发布时间】:2019-08-02 17:22:28
【问题描述】:
我有这样的代码:
BigDecimal n1= BigDecimal.TEN;
Long n2= 15L;
nullOrNonPositive(n1);
nullOrNonPositive(n2);
及方法代码:
private boolean nullOrNonPositive(Comparable value) {
return isNull(value) || value.compareTo(BigDecimal.ZERO) <= 0;
}
我确实得到了一个Exception,Long 无法与BigDecimal 进行比较,这很明显。有没有办法使方法通用并将Comparable(它始终是一个数字(但不同的类))与零进行比较?
【问题讨论】:
-
为什么要将 any 与 BigDecimal 进行比较?它们不是同一类型。
-
为什么不使用
Number而不是Comparable并强制转换为 double 并检查