2009-04-29 14 views
7

¿Es posible hacer que el eclipse predeterminado "Generar hashCode() y equals()" use getters en lugar de referencias de campo? - es decir. ¿Puedo obtener la plantilla que usa?make Eclipse equals()/hashCode() use getters

Estoy usando Hibernate, y los Objetos Proxiados solo son LazyLoaded cuando se usan getters y no desde referencias de campo. Es una molestia estar constantemente cambiándolo.

Las soluciones obvias son crear una plantilla yo mismo o escribir un complemento, lo cual se siente como una exageración.

EDITAR: Parece que estos no son configurables. Plantearé esto como una pregunta para JBoss Tools Group (hacen algunos complementos para Hibernate).

+0

no veo esa opción en mi Eclipse (menú Refactor comprobado) ... ¿dónde está? –

+0

Eclipse 3.4 está bajo el menú Fuente. – Damo

Respuesta

7

No es una solución, sino una solución - pero puede intentar generar equals(), luego use la refactorización de 'encapsular campo' para reemplazar todos los accesos de campo para usar getters/setters (también funciona dentro de la clase).

+0

Esto funciona! Gracias. Cambia todo el acceso al campo en la clase, pero lo hace de una manera razonable. También debe hacer cada campo individualmente. Mejor que cualquier otra solución actual sin embargo. – Damo

+0

Este método también funciona en IntelliJ. – cdmckay

0

he usado un plugin para generar hashCode() y equals() con apache commons lang

+0

Vincular una búsqueda de Google no es muy útil. Los resultados son probablemente muy diferentes ahora de hace 5 años. ¿Tienes un enlace al complemento específico que usaste? – finnw

+1

Fue http://commonclipse.sourceforge.net/index.html Creo. Corregido en comentario. – kingoleg

0

Curiosamente, estas plantillas no parecen ser configurable en absoluto.

Es posible que desee consultar this question. También this blog. Google probablemente obtendrá mucho más.

+0

Gracias, pero ya leí ese comentario y todo lo que Google estaba dispuesto a ofrecer. Commons4E tampoco usa getters. – Damo

Cuestiones relacionadas