when example ejemplo and java eclipse equals hashcode

example - override hashcode java



¿Cómo enseñar eclipse para generar comparables equals() y hashCode() de la clase jdk 7 Objects? (3)

En las preferencias de Eclipse, vaya a Java> Editor> Plantillas.

Allí puedes crear una nueva plantilla. El patrón podría verse así:

@Override public int hashCode() { return Objects.hash(one, two, three, four/*, ...*/); }

No estoy seguro de si hay una variable que enumerará correctamente sus campos sin embargo.

Es posible que desee ver algunas explicaciones adicionales sobre estas plantillas

Hace algunos días cambiamos a Java 7 dentro de mi empresa, ¡finalmente! Jay / o / Así que me enteré de la clase Objects y me sorprendió lo cortos que se realizaron los métodos hashCode() y equals() , reduciendo una gran cantidad de código de boylerplate en comparación con los generados por eclipse por defecto (ALT + SHIFT + S -> H).

Me preguntaba si podría cambiar el comportamiento predeterminado del eclipse generado hashCode() y equals() ?

Me encantaría ver esto:

@Override public int hashCode() { return Objects.hash(one, two, three, four/*, ...*/); }

en lugar de esto:

@Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((one == null) ? 0 : one.hashCode()); result = prime * result + ((two == null) ? 0 : two.hashCode()); result = prime * result + ((three == null) ? 0 : three.hashCode()); result = prime * result + ((four== null) ? 0 : four.hashCode()); // ... return result; }

Lo mismo aplica para equals() . Este es el artículo del que obtuve esto.

¿Alguna idea de cómo hacer esto mejor?


Hay un nuevo plugin disponible que puede generar los métodos toString (), hashCode (), equals () usando las características de java 7, la biblioteca común de apache, la biblioteca guava. Tiene buenas características personalizables. Encuentre el siguiente enlace para instalar el complemento. Después de la instalación, simplemente haga clic derecho -> Jenerate -> diferentes opciones

El enlace - https://marketplace.eclipse.org/content/jenerate


hashCode y genera equals usando la clase de Objects de Java 7 ahora se ha implementado en Eclipse. Estuve trabajando en la solicitud de funciones bugs.eclipse.org/bugs/show_bug.cgi?id=424214 en agosto de 2018 y mis contribuciones se fusionaron en la base de datos de la IU de JDT poco después (ver commit f543cd6 ).

Aquí hay una descripción general de la nueva opción en la herramienta Source> Generate hashCode () y es igual a ... herramienta:

Esto se ha lanzado oficialmente en Eclipse 4.9 en septiembre de 2018. Simplemente descargue la última versión de Eclipse (las descargas se pueden encontrar aquí ), o instale el último software disponible con el siguiente sitio de actualización: http://download.eclipse.org/releases /último

Además de esta nueva característica, las matrices ahora se manejan de manera más inteligente. La generación utilizará los métodos Arrays.deepHashCode y Arrays.deepEquals en una serie de casos en los que anteriormente preferiría incorrectamente las Arrays.hashCode estándar Arrays.hashCode y Arrays.equals .