Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Implemented
-
3.0.0-incubating
-
None
Description
The current implementation of Compare has a special case for Number which uses doubleValue for all comparisons. However, this fails for some implementations of Number, e.g. BigInteger. Also, most implementations of Number implement Comparable for appropriately typed arguments. It should be more robust and less surprising to simply use Object.equals and Comparable.compareTo. This would also be more performant as it removes the instanceof checks.
If we want the option of treating all numbers as doubles, perhaps something called CompareDouble would be more appropriate.