miércoles, julio 14, 2004

Tiger - Autoboxing

Hasta ahora, la conversión entre tipos de datos primitivos y objetos es tediosa y propensa a errores. Por ejemplo, si queremos agregar una cantidad a un ArrayList, debemos crear un Integer (por ejemplo), porque el método add necesita un objeto:

  List cantidades = new ArrayList();
  cantidades.add(new Integer(7));


Pero en la nueva versión 1.5 de Java (o debería decir 5.0?), el compilador añade automáticamente el codigo para convertir el tipo primitivo en un objeto, por lo que ahora es perfectamente válido lo siguiente:

  List cantidades = new ArrayList();
  cantidades.add(7);


Este proceso se llama "boxing", y el proceso inverso, es decir convertir un objeto en un tipo de dato primitivo, "unboxing".

Si tuviéramos este método

  public void test(int val) {
    ...
  }


Podríamos utilizar

  Integer numero = new Integer(7);
  test(numero);


En lugar de

  Integer numero = new Integer(7);
  test(numero.intValue());


Esto es asi para los tipos boolean, byte, double, short, int, long y float, que son "convertidos" en Boolean, Byte, Double, Short, Int, Long y Float respectivamente.

1 comentario:

Anónimo dijo...

gracias por el post, siempre van bien estas pequeñas "pildoras" sobre la nueva version de Java.