Categorías del Tutorial

icono_twiter
Jose Manuel Sánchez Suárez

Consultor tecnológico de desarrollo de proyectos informáticos.

Puedes encontrarme en Autentia: Ofrecemos servicios de soporte a desarrollo, factoría y formación

Somos expertos en Java/J2EE

Ver todos los tutoriales del autor

Fecha de publicación del tutorial: 2012-10-03

Tutorial visitado 2.479 veces Descargar en PDF
Plantillas para los métodos equals y hashCode en Eclipse, usando la librería de Apache Commons Lang.

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

A continuación puedes evaluarlo:

Regístrate para evaluarlo

Por favor, vota +1 o compártelo si te pareció interesante

Share |
Anímate y coméntanos lo que pienses sobre este TUTORIAL: