La nueva versión de Java -- Java 5 / JDK 5 -- ha incorporado una serie de funcionalidades y sintaxis que tendrán un efecto directo sobre el tiempo de desarrollo en aplicaciones de este lenguaje, incrementado así su productividad como desarrollador.
En forma de atajos, mayores salvaguardas para detectar errores, o simplemente en la simplificación de escribir código, los principales cambios se encuentran enunciados en las siguientes secciones
El uso de clases genéricas es una funcionalidad que permite garantizar el tipo de elementos colocados en una colección Java -- esto es, una de las clases del "Collections Framework" -- y a su vez evitar el proceso explicito de extracción necesario para manipular los objetos que en él se contienen.
El uso de auto-boxing y auto-unboxing tiene sus raíces en el uso de primitivos Java. A pesar que la mayoría de los diseños en Java giran alrededor de manipular objetos, el uso de primitivos como boolean, char , byte, int , long, float
y double
permanecen en amplio uso.
Un caso típico donde son utilizados primitivos es aquel donde se realizan operaciones matemáticas, esto se debe en parte a la sencillez de generar un primitivo, ya que no requiere inicialización de objeto mediante new, mismo factor que favorece eficiencia de ejecución comparado con usar un objeto. Sin embargo, a pesar de las ventajas presentadas al utilizar primitivos, existen casos -- como el de guardar primitivos en una colección de objetos -- que requieren conversiones continuas de un primitivo hacia un objeto y viceversa.
Este tipo de conversiones en versiones previas a Java 5, son realizadas mediante métodos proporcionados en clases "Wrappers" de cada primitivo, un proceso mecánico y tedioso, a pesar de ser obvio el comportamiento de conversión deseado. Ante estos procesos laboriosos de conversión, fueron integrados los mecanismos de auto-boxing y auto-unboxing para permitir la conversión de valores primitivos hacia sus respectivos objetos "Wrappers" de manera directa y sin mayores complicaciones.Observemos un ejemplo.
Los ciclos de iteración se encuentran entre las estructuras más comunes en programación, para Java 5 se ha incorporado una sintaxis nueva para simplificar su uso.
Anotaciones en código fuente es otra de las funcionalidades incorporadas en Java 5. A través de anotaciones se tiene la posibilidad de utilizar información complementaria colocada directamente en código fuente -- meta datos -- al momento de compilar o ejecutar una clase Java.
El mecanismo de colocar información dentro del código fuente para fines distintos al de ejecución no es algo nuevo para Java, el proceso para generar documentación de clases emplea este mismo mecanismo y ha estado disponible desde las primeras versiones Java [ Observe el proceso para generación de documentación en Java], sin embargo, lo que resulta importante de esta funcionalidad en Java 5 es la capacidad de utilizar dicha información para fines de indicar instrucciones al compilador o JVM ("Java Virtual Machine").
Una enumeración es una estructura de datos diseñada para agrupar información estática y facilitar su acceso de otras clases. Esta funcionalidad ya presente en una serie de lenguajes de programación, como C++
y Perl
, esta siendo debutada en el mundo Java hasta esta versión 5.
Como sería normal esperar, ante la falta de apoyo directo en el JDK para enumeraciones, muchos desarrolladores familiarizados con esta técnica han creado sus propias maneras de simular el comportamiento. Ahora veamos si usted es uno de éstos, y de ser así, como incorporar la estructura formal de una enumeración a un programa Java, o de lo contrario, en que casos resulta apropiado utilizarla.
Al hacer uso de librerías en programas Java, el mecanismo para tener acceso a ellas es a través del vocablo import
, esto es, si deseamos hacer uso de las interfases o clases del "Collections Framework" debemos colocar la declaración : import java.util.*
en la parte superior de la clase.
Aunque este proceso de acceso es estándar para la mayoría de clases Java, en versiones previas a Java 5 no es posible utilizarlo en un tipo de clase : Clases estáticas. El acceso a este tipo de clases en versiones del JDK 1.4 y anteriores requiere que éstas mismas sean declaradas explícitamente dentro del código central del programa. Observemos un ejemplo.