Iniciación a Eclipse y J2SE 5.0

Desde el release 3.1, Eclipse incluye pleno soporte para las nuevas características de J2SE 5.0 (que también se conoce como "Tiger"). Una de las consecuencias más importantes de este soporte es que uno ni siquiera se da cuenta de que existe, pues todo lo que cabe esperar que funcione con J2SE 1.4 (incluida la edición, la compilación, la depuración, los arreglos rápidos, las refactorizaciones, las acciones del fuente, la búsqueda, etcétera), funcionará sin fisuras con los nuevos tipos y la nueva sintaxis de J2SE 5.0. En este documento, presentaremos algunas de las prestaciones más interesantes para los usuarios de Eclipse cuando trabajen con J2SE 5.0.

Prerrequisitos

Para poder desarrollar código que esté en conformidad con J2SE 5.0, necesitará un entorno Java de tiempo de ejecución (JRE) de J2SE 5.0. Si inicia Eclipse por primera vez con un JRE de J2SE 5.0, Eclipse lo utilizará por omisión. De lo contrario, deberá utilizar la página de preferencias Abre la página de preferencias de JRE instalado Java > JRE instalados para registrarlo en Eclipse.

En este documento se presentan algunas de las nuevas características de lenguaje de J2SE 5.0 de manera muy resumida, pero esta no es la guía de aprendizaje adecuada para estas características. Consulte esto para obtener más información.

Nivel de conformidad del compilador

Para utilizar las nuevas características de J2SE 5.0, debe estar trabajando en un proyecto que tenga habilitado el nivel de conformidad con 5.0 y que tienen un JRE 5.0. Los proyectos nuevos obtendrán la conformidad con 5.0 automáticamente al elegir JRE 5.0 en la primera página del Abre el asistente de proyecto Java nuevo asistente Proyecto Java nuevo:

Asistente Proyecto nuevo

Para hacer que un proyecto existente en J2SE 1.4 se convierta a un proyecto de J2SE 5.0, basta con seguir estos pasos:
  1. Asegúrese de que tiene instalado un JRE de J2SE 5.0.
  2. Empiece a utilizar las características de 5.0 en el código.
  3. Cuando se señale un error del compilador, utilice un arreglo rápido para actualizar el nivel de conformidad del proyecto:

    Arreglo rápido para habilitar J2SE 5.0

Para obtener un control más preciso, el nivel de conformidad del compilador se puede establecer globalmente para un espacio de trabajo (con la página de preferencias Abre la página de preferencias del compilador Java Java > Compilador) o individualmente para cada proyecto (en el menú contextual del proyecto, elija Propiedades > Compilador Java.) En el espacio de trabajo pueden coexistir proyectos con distintos niveles de conformidad, que dependen unos de otros. También se pueden ajustar con precisión los tipos de avisos y errores del compilador que se producen para cada proyecto, utilizando para ello Propiedades > Compilador Java > Errores/Avisos > Opciones de J2SE 5.0.

Tipos genéricos

Los tipos genéricos permiten que los objetos de una misma clase funcionen sin peligro en objetos de distintos tipos. Por ejemplo, permiten garantizar en tiempo de compilación que una List<String> siempre contenga tipos String, y que una List<Integer> siempre contenga tipos Integer.

En todos los lugares en que Eclipse maneja un tipo no genérico, puede manejar un tipo genérico: Además, se ha añadido una nueva refactorización: la opción Inferir argumentos de tipo genérico puede inferir parámetros de tipo para cada referencia de tipo de una clase, de un paquete o de todo un proyecto:

Invocando Inferir argumentos de tipo genérico

Al invocar la refactorización, se obtiene:

Inferir argumentos de tipo genérico invocada

Eclipse nuevas opciones al buscar referencias a tipos genéricos. Fíjese en este ejemplo:

Ejemplo con cuatro creaciones de instancia parametrizadas de List distintas

Si se selecciona la referencia a List<Integer> y se utiliza Buscar > Referencias > Proyecto, se resaltarán los tipos de List en las cuatro líneas:

Búsqueda sin filtros

Si se utiliza el menú Ver de Buscar, los resultados se pueden filtrar:

La opción Filtrar incompatible solo deja las referencias a tipos que son compatibles desde el punto de vista de la asignación con el tipo seleccionado:

Filtrar incompatible

La opción Filtrar inexacto solo deja las referencias de tipo que tengan exactamente la misma signatura:

Filtrar inexacto

Anotaciones

Las anotaciones anexan al fuente Java metadatos sobre como se usan y documentan los tipos y métodos Java, y después pueden afectar a la compilación o se pueden consultar en tiempo de ejecución. Por ejemplo, la anotación @Override desencadenará un aviso del compilador si el método anotado no altera temporalmente un método de una superclase:

Alterar temporalmente anotación

Todo lo que se puede hacer con un tipo Java, se puede hacer igualmente con una anotación:

Una anotación de gran utilidad que está plenamente soportada en Eclipse es @SuppressWarnings. Por ejemplo, supongamos un método privado que no se utiliza actualmente, pero que es preferible no suprimir:

Aviso: método privado no utilizado

El arreglo rápido, si se invoca en el aviso, propone añadir una anotación @SuppressWarnings:

SuppressWarnings propuesta

Al seleccionar el arreglo rápido, se añade la anotación. El compilador de Eclipse respeta la anotación eliminando el aviso en foo:

SuppressWarnings insertada

Enumeraciones

Las enumeraciones son tipos cuyas instancias se crean en tiempo de ejecución mediante un conjunto finito y conocido de objetos:

tipo de enumeración

Nuevamente, todo lo que se puede hacer con una clase Java, se puede hacer también con una enumeración:

Autoencaje

El encaje y el desencaje automáticos hacen posible una sintaxis elegante cuando se asignan tipos primitivos a referencias de objeto o cuando se recuperan tipos primitivos a partir de referencias de objeto:

autoencaje resaltado

Las características de manipulación del fuente de Eclipse manejan el encaje automático sin fisuras, proporcionando los tipos correctos a las nuevas variables locales y a las correctas asistencias de código. De cara a la correcta interpretación del código, también es posible señalar las instancias de conversiones de encaje o desencaje automático como avisos de compilación (utilizando la sección Problemas de programación potenciales de la página de preferencias Abre la página de preferencias Errores/Avisos Java > Compilador > Errores/Avisos), o resaltándolos utilizando el coloreado de sintaxis (a través de la sección Java > Expresiones convertidas automáticamente mediante box/unbox de la página de preferencias Abre la página de preferencias Coloreado de sintaxis Java > Editor > Coloreado de sintaxis):

Habilitar el resaltado para el autoencaje

Bucle for mejorado

Para el caso habitual de operar en cada elemento de una matriz o colección por turno, J2SE 5.0 ofrece una nueva sintaxis más clara. Eclipse proporciona una plantilla de código "foreach" que puede adivinar automáticamente la recopilación a iterar:

Plantilla foreach propuesta

Al elegir la plantilla, se obtiene:

Plantilla foreach insertada

Eclipse también proporciona la asistencia rápida "Convertir a bucle for mejorado" para actualizar los bucles for de estilo 1.4 donde sea posible.

Otras

Las demás características de J2SE 5.0 se manejan de manera flexible con las herramientas de edición, búsqueda y manipulación de código de Eclipse: ¡Todo para que usted se lo pase bien escribiendo código!