Сделать 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, вероятно, даст вам гораздо больше.

Другие вопросы по тегам