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

0
7958

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

DEJA UNA RESPUESTA

Por favor ingrese su comentario!

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

Por favor ingrese su nombre aquí

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

  • Responsable:
  • Finalidad:
  • Legitimación:
  • Destinatarios:
  • Derechos:
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad