Мне хорошо известно о контрактных потребностях, чтобы убедиться, что hashCode
соответствует equals
и что equals
соответствует compareTo
. Однако это часто нарушается на практике. Существуют ли какие-либо инструменты, методы или библиотеки, которые могут автоматически проверять эту согласованность?
Я подозреваю, к сожалению, что ответ "нет", но было бы полезно иметь unit test для такого рода вещей, которые могли бы использовать библиотечный вызов или структуру, а не писать тест вручную для каждого случая, когда это важно.
Если не ясно, что я подразумеваю под согласованностью, для hashCode
и equals
я ссылаюсь на следующее:
Для equals
и compareTo
я ссылаюсь на следующее: