Plantillas para los métodos equals y hashCode en Eclipse, usando la librería de Apache Commons Lang.

En este tutorial vamos a exponer cómo hacer uso de plantillas de Eclipse para que generen el código los métodos equals y hashCode de una forma eficiente.

Plantillas para los métodos equals y hashCode en Eclipse, usando la librería de Apache Commons Lang.

0. Índice de contenidos.


1. Introducción

Eclipse soporta, por si solo, la generación de códido para los métodos equals, hashCode y toString de una clase.
Si, para el método toString, Eclipse permite la personalización del código que se genera, para los métodos equals y hashCode no.

Ya vimos la importancia de sobreescribirlos
en nuestras clases de entidad
y una recomendación para que el código de los mismos lo generásemos con el soporte de la librería Apache Commons Lang.

En este tutorial vamos a exponer cómo hacer uso de plantillas de Eclipse para que generen el código de dichos métodos en nuestras clases.
Lo normal es que el copy/paste del código de dichos métodos de una clase a otra pueda devenir en errores; de esta forma, limitaremos la posibilidad de los mismos.


2. Entorno.

El tutorial está escrito usando el siguiente entorno:

  • Hardware: Portátil MacBook Pro 15′ (2.4 GHz Intel Core i7, 8GB DDR3 SDRAM).
  • Sistema Operativo: Mac OS X Lion 10.7.4
  • Eclipse Juno


3. Creación de las plantillas.

Para crear las plantillas desde las preferencias de Eclipse > Java > Editor > Templates podemos añadir las nuestras y el código propuesto es el siguiente:


3.1. Método hashCode.

Para el método hashCode:

${:import(org.apache.commons.lang.builder.HashCodeBuilder)}

@Override
public int hashCode() {
  final HashCodeBuilder hcb = new HashCodeBuilder();
  hcb.append(this.get${enclosing_method});
  return hcb.toHashCode();
}

De modo que quedaría como sigue:


3.2. Método equals.

Para el método equals:

${:import(org.apache.commons.lang.builder.EqualsBuilder)}

@Override
public boolean equals(Object obj) {
  if (!(obj instanceof ${enclosing_type})) {
    return false;
  }
  final ${enclosing_type} other = (${enclosing_type})obj;
  final EqualsBuilder eqb = new EqualsBuilder();
  eqb.append(this.get${field}, other.get${field});
  return eqb.isEquals();
}

De modo que quedaría como sigue:


4. Uso de las plantillas.

Para hacer uso de las plantillas no hay más que comenzar a escribir el nombre y pulsar CTRL + espacio:


5. Conclusiones.

Sin más, intentamos reducir las posibilidades de cometer un error y, para ello, tenemos que conocer y explotar las herramientas con las que trabajamos.

Un saludo.

Jose

jmsanchez@autentia.com

Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

He leído y acepto la política de privacidad

Información básica acerca de la protección de datos

  • Responsable: IZERTIS S.A.
  • Finalidad: Envío información de carácter administrativa, técnica, organizativa y/o comercial sobre los productos y servicios sobre los que se nos consulta.
  • Legitimación: Consentimiento del interesado
  • Destinatarios: Otras empresas del Grupo IZERTIS. Encargados del tratamiento.
  • Derechos: Acceso, rectificación, supresión, cancelación, limitación y portabilidad de los datos.
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad

Software Architect 👷‍♀️ | Tech Leader 🚀 | Senior Developer: Backend 🧩 and occasionally in Frontend 🖼️ | DevSecOps 🛠️ | Banking 🏛️ | Digital Transformation Agent 🎯 | Problem Solver (Mr. Wolf) 🐺

¿Quieres publicar en Adictos al trabajo?

Te puede interesar

22/06/2026

Juan Antonio Jiménez Torres

Vamos a instrumentalizar un SDD para un microservicio bancario. En este artículo sobre SDD - Spec Driven Development, instrumentalizado sobre OpenSpec vamos a construir una PoC de algo más serio que una tabla periódica. Un microservicio bancario muy simplificado que gestione cuentas y permita hacer transferencias

16/06/2026

Juan Antonio Jiménez Torres

Este es el segundo artículo sobre SDD, Spec Driven Development, instrumentalizado sobre OpenSpec. Pero esta vez nos acercaremos usando softwere gratuito. Por un lado OpenCode en lugar de ClaudeCode y usando el modelo gratuito Gemma4 de Google en lugar de otros de pago.

08/06/2026

Juan Antonio Jiménez Torres

Aprenderemos sobre SDD – Spec Driven Development instrumentalizado sobre OpenSpec. Haremos un primer acercamiento usando ClaudeCode con Sonnet, para luego, en un artículo posterior pasarnos a la versión gratuita de OpenCode con Gemma4