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