Это не вопрос о том, как сравнивать два объекта BigDecimal
- я знаю, что для этого можно использовать compareTo
вместо equals
, так как equals
документируется как:
В отличие от compareTo, этот метод рассматривает два объекта BigDecimal равными, только если они равны по значению и масштабу (таким образом, 2.0 не сравнивается с 2.00 при сравнении с этим методом).
Возникает вопрос: почему этот equals
был указан в этом, казалось бы, интуитивно понятном? То есть, почему важно иметь возможность различать от 2.0 до 2.00?
Кажется вероятным, что для этого должна быть причина, так как документация Comparable
, которая указывает метод compareTo
, гласит:
Настоятельно рекомендуется (хотя и не обязательно), чтобы естественные порядки соответствовали равенствам
Я полагаю, что есть хорошая причина для игнорирования этой рекомендации.