Я ищу все стандартные классы Java, для которых compareTo() может возвращать 0, а equals() возвращает false:
Comparable comparable1 = ???;
Comparable comparable2 = ???;
assert comparable1.compareTo(comparable2) == 0;
assert !comparable1.equals(comparable2);
Я знаю только один: new BigDecimal("1.0") равен new BigDecimal("1"), используя compareTo(), но не равный с помощью equals(). Есть ли другие?
Меня интересуют все такие классы, но только из открытого Java API. Мне нужно, чтобы предоставить подробную документацию для AssertJ UnevenComparableAssert.
EDIT:
Благодаря @ErikVesteraas мне удалось воспроизвести дополнительный пример:
Calendar calendar1 = new GregorianCalendar(0, 0, 0);
Calendar calendar2 = new GregorianCalendar(0, 0, 0);
calendar2.setLenient(false);
Comparable comparable1 = calendar1;
Comparable comparable2 = calendar2;
assert comparable1.compareTo(comparable2) == 0; // compareTo compares along the timeline
assert !comparable1.equals(comparable2); // equals compares state, leniency is different