Сделать Eclipse equals() / hashCode() использовать геттеры
Можно ли заставить Eclipse по умолчанию "Generate hashCode() и equals()" использовать геттеры вместо ссылок на поля? - т.е. я могу получить шаблон, который он использует?
Я использую Hibernate, и Proxied Objects только LazyLoaded, когда используются геттеры, а не из ссылок на поля. Досадно постоянно менять его.
Очевидные обходные пути - создать шаблон самостоятельно или написать плагин, что выглядит как перебор.
РЕДАКТИРОВАТЬ: Похоже, что они не настраиваются. Я поставлю это как вопрос для JBoss Tools Group (они делают несколько плагинов для Hibernate).
4 ответа
Это не решение, скорее обходной путь - но вы можете попробовать сгенерировать equals()
, затем используйте рефакторинг 'encapsulate field', чтобы заменить все поля, принимаемые для использования методов получения / установки (это также работает внутри класса).
Оооо, будьте осторожны с проксированием: http://blog.xebia.com/2008/03/08/advanced-hibernate-proxy-pitfalls/;)
Я использовал плагин для генерации hashCode()
а также equals()
с Apache Commons Lang
Как ни странно, эти шаблоны, кажется, не настраиваются вообще.
Возможно, вы захотите взглянуть на этот вопрос. Также этот блог. Google, вероятно, даст вам гораздо больше.