Novedades en 2.1

Aquí se indican algunos de los cambios más interesantes o significativos que, desde el release 2.0, se han realizado en las herramientas de desarrollo Java (JDT) del release 2.1 de Eclipse:

Editor Java

Depurador Java

Propagación

General

Integración de JUnit

Editor Java

El editor Java se puede personalizar más

La página de preferencias de Java > Editor ofrece más opciones de configuración:

  • Puede configurar la ayuda flotante en el editor Java por medio de la pestaña Ayudas flotantes.
  • Puede utilizar la pestaña Teclear para controlar la inserción automática de elementos de cierre de paréntesis, corchetes, series y comentarios, la acomodación inteligente de series, y otros comportamientos del editor específicos de Java.
  • Puede utilizar la pestaña Anotaciones para personalizar el aspecto visual de los errores, avisos, tareas, etcétera.
Ayudas flotantes fijas

Puede abrir una ayuda flotante en una ventana desplazable y dimensionable si pulsa la tecla F2. Esta ventana le permite seleccionar el contenido y copiarlo.

Ventana de ayuda flotante dimensionable

Indicación de estado prominente

Ahora, el editor de texto por omisión y el editor Java visualizan un marcador prominente en el ángulo superior derecho para indicar que el archivo contiene errores o avisos.

Editor con un marcador de indicación de error en el ángulo superior derecho

Buscar en archivo

En el grupo de menús de búsqueda figura un nuevo mandato (Apariciones en archivo) que permite buscar todas las apariciones de tipos, campos, métodos y variables locales dentro de la unidad de compilación o del archivo de clase donde está declarado el elemento. Por cuestión de coherencia con otros mandatos de búsqueda, se generan marcadores que se presentan como anotaciones en el editor. Las entradas existentes en la vista Resultados de búsqueda tienen distintos iconos para el acceso de lectura y escritura. En este ejemplo, puede ver los resultados de la búsqueda de "fName" en el archivo "TestCase.java".

El editor y la vista Buscar, donde se ven las apariciones de un campo en un archivo

Más arreglos rápidos

Ahora hay arreglos rápidos para más problemas Java. Pulse la bombilla que figura en el margen izquierdo del editor Java, pulse las teclas Control+1 o seleccione las acciones Editar > Arreglo rápido en el menú para:

  • Crear constructores que faltan
  • Eliminar métodos, campos o tipos privados que no se utilizan
  • Arreglar importaciones ambiguas (también sugiere la acción Organizar importaciones)
  • Crear método en tipo exterior (para los métodos de clases anónimas)
  • Añadir apéndices para los métodos no implementados
  • Añadir una cláusula catch o una declaración throws para manejar una excepción no capturada
  • Eliminar una cláusula catch para manejar una excepción que haya dejado de lanzarse
  • Añadir métodos abstractos no implementados

Hay otros problemas detectados por el compilador que se pueden solucionar con arreglos rápidos, entre ellos:

  • Campos de instancia que se utilizan en contexto estático
  • Métodos o campos estáticos a los que se accede de manera no estática
  • Declaración de un método abstracto en un tipo no abstracto
  • Método, campo, tipo o importación no visible
  • Series no externalizadas

Ventana Arreglo rápido

Asistencia rápida

Ahora, las acciones de Arreglo rápido están disponibles incluso cuando no hay errores. Sitúe el cursor en un identificador y pulse las teclas Control+1 (acciones Editar > Arreglo rápido) para invocar la asistencia rápida.

  • Se dispone de una redenominación enlazada en todos los identificadores.

    Asistencia rápida de redenominación enlazada

    La redenominación enlazada activa la edición en modalidad enlazada (como en las plantillas), en la que la operación de cambiar el identificador hace que cambien todas las apariciones de ese nombre en el archivo fuente.

  • Puede sustituir la cláusula catch por la cláusula throws (disponible en las cláusulas catch).
  • Puede asignar sentencias de expresión a un campo o variable local nueva (disponible en todas las sentencias de expresión). Por ejemplo, vector.iterator(); se transformará en
    Iterator iterator= vector.iterator();
    La asistencia rápida proporciona sugerencias para los nombres de las variables.
  • Puede eliminar sentencias o bloques if/while/for/do, y el sangrado del contenido se corregirá automáticamente.
  • Puede rodear selecciones multilínea con plantillas.
Mejoras realizadas en la asistencia de código
  • El compilador Java ha mejorado la valoración de la relevancia de una propuesta basándose en el tipo que cabe esperar en el contexto. Por ejemplo, en el caso de StringBuffer sb= new [asistencia de código], ahora la primera propuesta de la lista sería StringBuffer.
  • Ahora, la asistencia de código en el editor Java proporciona propuestas de conclusión de palabras clave.
Vista Esquema Java mejorada

Puede ajustar la vista Esquema Java para que tan solo muestre los miembros del tipo principal de la unidad de compilación, pulsando para ello el botón Icono de Ir adentro del tipo de nivel superior (Ir adentro del tipo de nivel superior) de la barra de herramientas de la vista Esquema.

Barra de herramientas de la vista Esquema Java

Código Java hiperenlazado

Mientras pasa el puntero del ratón por encima de código Java, si pulsa la tecla Control y mueve el ratón, los identificadores de clase, método y campo se transformarán en enlaces pulsables que permiten acceder a la correspondiente declaración. Esta opción se puede configurar por medio de la pestaña Java > Editor > Navegación.

Hiperenlaces en el código Java

Desplazarse al miembro siguiente En el editor Java, las teclas Control + Mayús + Flecha abajo (o las acciones Navegar > Ir a > Miembro siguiente) y las teclas Control + Mayús + Flecha arriba (o las acciones Navegar > Ir a > Miembro anterior) le permiten navegar rápidamente entre los métodos, campos, inicializadores y tipos de los miembros.
Se detectan más errores sobre la marcha

Ahora, el editor Java anota más tipos de errores, incluidas las excepciones no capturadas y las variables no utilizadas, que exigen un análisis de flujo detallado.

Editor que muestra un error detectado mientras se teclea

Esquemas in situ

Pulse las teclas Control+F3 (o las acciones Navegar > Abrir estructura) en el editor Java para que se abra un esquema in situ del elemento situado en la posición actual del cursor. O bien pulse las teclas Control+O (o las acciones Editar > Abrir estructura) para abrir un esquema in situ del archivo fuente actual.

Esquema in situ

Información flotante en la visión general del editor

Ahora, la regla de visión general del editor Java (en la parte derecha del marco) muestra información flotante sobre las anotaciones de problemas.

Información flotante en la regla de visión general

Editor de archivos de clase

Ahora el editor de archivos de clase se ha puesto al día junto con el editor de unidades de compilación. En el presente están soportadas las funciones de resaltado de línea del cursor, números de línea, resaltado de anotaciones, regla de visión general, margen de impresión, expansión de selección semántica y navegación desde el teclado entre los miembros del archivo de clase.

Depurador Java

Vista Hebras y supervisores

La nueva vista Hebras y supervisores del depurador muestra qué hebras están reteniendo bloqueos y cuáles de ellas están a la espera de adquirir bloqueos.

Vista Supervisores que muestra los ciclos de punto muerto

 

Puntos de interrupción y puntos de observación de instancia Ahora puede establecer puntos de interrupción y puntos de observación específicos de una instancia de un determinado objeto. En la vista Variables, elija Puntos de interrupción de instancia... en el menú contextual de las variables.

Diálogo de filtro de instancia

Puntos de interrupción condicionales mejorados Los puntos de interrupción condicionales tradicionales se desencadenan cuando una expresión booleana da como resultado el valor "true". Ahora es posible declarar puntos de interrupción condicionales que se desencadenen siempre que cambie el valor de una expresión. Además, ahora se dispone de asistencia de código cuando se teclea la expresión condicional.

Diálogo de propiedades de punto de interrupción

Recorrer todo en las selecciones

Ahora el depurador Java le permite recorrer todo en un solo método de una serie de llamadas a métodos encadenados o anidados. Basta con que resalte el método en el que desea recorrer todo y seleccione Recorrer todo en la selección en el menú contextual del editor Java.

Recorrer todo en la selección

Elementos de observación Puede crear elementos de observación si selecciona una expresión en el editor Java y utiliza la acción Observar (disponible en el menú contextual y en el menú Ejecutar). Asimismo, se puede crear un elemento de observación seleccionando una variable y utilizando la acción Observar.
Filtros de recorrer Ahora resulta más cómodo utilizar los filtros de recorrer porque se ha añadido la acción Recorrer con filtros a la barra de herramientas y al menú de depuración. Asimismo, se han añadido acciones al menú contextual de depuración, acciones que permiten racionalizar la creación de filtros de recorrer para el tipo o el paquete asociado al marco seleccionado de la pila.
Acomodación de palabras en la vista Variables Ahora, el área de detalles de las vistas Variables y Expresiones del depurador permite acomodar las palabras, opción disponible en el menú desplegable de la vista.

Acción de acomodar palabras en el menú desplegable de la vista Variables

Hiperenlaces del rastreo de la pila

En la consola, ahora los rastreos de la pila Java aparecen con hiperenlaces. Cuando coloca el puntero del ratón encima de una línea de un rastreo de la pila, el puntero adquiere la forma de una mano y el rastreo de la pila queda subrayado. Si se pulsa el botón del ratón, se abre el archivo fuente Java asociado y el cursor se sitúa en la correspondiente línea.

Rastreo de pila con hiperenlaces en la vista Consola

Tamaño del almacenamiento intermedio de la consola La vista Consola tan solo retiene los N caracteres más recientes de la salida (el valor por omisión es 80K). El tamaño del almacenamiento intermedio de la consola se puede configurar por medio de la página de preferencias de Depurar > Consola.
Filtrar constantes y variables estáticas

En el menú desplegable de la vista Variables están disponibles dos acciones nuevas: Mostrar constante y Mostrar variables estáticas. Estas acciones permiten conmutar la visibilidad de las variables estáticas y estáticas finales.

Acciones de filtro de variables en el menú desplegable de la vista Variables

Acción de recorrer más rápida

Ha mejorado el rendimiento de la acción Ejecutar > Recorrer principal (F6) del depurador. Notará la diferencia si mantiene pulsada la tecla F6 o va pulsando rápidamente el botón Recorrer principal.

Puntero de instrucción

Al depurar, ahora el editor Java indica la línea que se ejecuta actualmente mediante una flecha en el margen izquierdo. Esta flecha es maciza en el caso del marco superior de la pila y hueca en el caso de los demás marcos.

Puntero de instrucción que aparece en la regla del editor

Propagación

Propagaciones nuevas

Hay muchas acciones de propagación nuevas:

  • Mover método de instancia: esta propagación le permite mover el método a la clase declarada de uno de los correspondientes parámetros o campos. Se crea un método nuevo, y el método antiguo se convierte en una delegación (pasándole un puntero a this, si es necesario).
  • Degradar miembros: esta propagación le permite mover un conjunto de miembros y campos de una clase a sus subclases.
  • Incorporar método: esta propagación incorpora llamadas a un método Java concreto, ya sea en un lugar de llamada seleccionado o en cualquier lugar que se llame al método. Está disponible polimórficamente por medio de la entrada de menú Propagar > Incorporar.
  • Incorporar constante: esta propagación incorpora las utilizaciones de un determinado campo Java estático final, ya sea en un lugar de referencia seleccionado o en cualquier lugar que se haga referencia al campo. Está disponible polimórficamente por medio de la entrada de menú Propagar > Incorporar.
  • Extraer constante: esta propagación crea un campo estático final a partir de la expresión seleccionada, sustituye una referencia al campo y, opcionalmente, reescribe los otros lugares en los que aparece la misma expresión.
  • Convertir variable local en campo: esta propagación le permite transformar una variable local en un campo. Si la variable se inicializa en el momento de su creación, la operación mueve la inicialización a la declaración del campo nuevo o a los constructores de la clase.
  • Convertir clase anónima en clase anidada: esta propagación le ayudará a convertir en clase miembro una clase interna anónima de su código que sea demasiado grande.
  • Convertir tipo miembro en tipo de nivel superior: esta propagación crea una unidad de compilación Java nueva para el tipo miembro seleccionado y actualiza todas las referencias en la medida de lo necesario. En el caso de los tipos miembro no estáticos, se añade un campo para permitir el acceso a la instancia delimitadora anterior.
  • Extraer interfaz: esta propagación crea una interfaz nueva con un conjunto de métodos y hace que la clase seleccionada implemente la interfaz, cambiando opcionalmente las referencias a la clase para que sean referencias a la interfaz nueva, siempre que sea posible.
  • Utilizar supertipo donde sea posible: esta propagación sustituye las apariciones de un tipo por uno de sus supertipos después de identificar todos los lugares en los que resulta posible esta sustitución.
Propagaciones mejoradas

Se han mejorado varias acciones de propagación:

  • Cambiar firma de método: esta propagación sustituye a la propagación de Modificar parámetros. Le permite cambiar la visibilidad y el tipo de retorno de un método, así como añadir, eliminar, redenominar y reordenar los parámetros de un método.
  • Promover miembros: esta propagación se ha mejorado de varias maneras:
    • los miembros se pueden promover más de un nivel en la jerarquía
    • en lugar de promoverlos, puede declarar los métodos como abstractos en el supertipo seleccionado
    • puede calcular cuál es el menor conjunto de miembros que se tienen que promover juntos para que queden satisfechas las restricciones de visibilidad
  • Extraer método: puede reordenar y redenominar los parámetros del método extraído.
  • Propagaciones de Mover y Redenominar: ahora, cuando se redenomina un tipo o un paquete Java (o cuando se mueve un tipo a otro paquete), el nombre totalmente calificado del elemento también se puede actualizar en los archivos que no sean Java.

Una nueva UI ligera para la propagación

Ahora, cuando se activa una operación de propagación Java, se muestra un pequeño diálogo inicial destinado a reunir la información que se necesita para realizar la propagación. Pulse Aceptar si desea ejecutar la propagación sin más, o bien pulse Vista previa si prefiere ver sus efectos antes de decidir si hay que continuar.

Nuevo diálogo ligero para la propagación

General

Vías de acceso más flexibles para la salida y el fuente Java

Se ha mejorado la flexibilidad de configuración de las vías de construcción Java:
  • Los filtros de exclusión le permiten excluir de la compilación determinados archivos fuente de una carpeta fuente.
  • Ahora las carpetas fuente se pueden anidar: utilice un filtro de exclusión en la carpeta padre para excluir la subcarpeta que desea añadir a la vía de construcción.
  • La ubicación de los archivos de clase generados se puede establecer individualmente para cada carpeta fuente.
  • A modo de carpetas fuente, carpetas de clase o carpetas de salida, también puede utilizar carpetas enlazadas.

Página de propiedades de la vía de construcción Java

Valores de compilador Java específicos del proyecto Además de los valores de las preferencias del compilador Java a escala del área de trabajo (Java > Compilador), ahora también puede configurar dichos valores para un proyecto Java concreto mediante la nueva página de propiedades del compilador Java en cada proyecto Java.

Más opciones para el compilador Java

  • Los proyectos Java que dependen unos de otros se suelen poder compilar satisfactoriamente en una sola acción de construcción. Para conseguir que los ciclos estén permitidos, tendrá que reducir la gravedad asociada a las dependencias circulares en la página de preferencias de Java > Compilador.
  • Ahora, el compilador Java puede avisar cuando hay declaraciones de tipos, campos o métodos privados no utilizados. Esta opción le ayudará a detectar código sin utilidad y otros errores sutiles.
  • Ahora, el compilador Java le enviará un aviso cuando parezca que está asignando una variable con su propio valor. Esta opción le ayudará a detectar un error sutil que suele producirse en los métodos set y en las declaraciones de constructor cuando el nombre de un parámetro se parece al nombre de un campo. Esta opción se puede configurar por medio de la página de preferencias de Java > Compilador > Estilo. A continuación se ofrece un ejemplo:
Asignación sin efecto

Mejoras en la configuración de prefijos y sufijos para las variables

Además de configurar el prefijo o el sufijo de los campos, ahora puede especificar el prefijo o el sufijo de los campos estáticos, parámetros y variables locales. Estos valores de la página de preferencias de Java > Generación de código se emplean en la asistencia de código, en los arreglos rápidos y en la propagación siempre que sea necesario calcular el nombre de una variable.

Página de preferencias de convenios de nombres

Generación de código personalizable

La página de preferencias de Java > Generación de código le permite personalizar código y comentarios generados, de manera parecida a las plantillas normales. Estas plantillas de código se emplean siempre que se genera código. (Las plantillas de comentarios sustituyen a las plantillas 'filecomment' y 'typecomment' existentes que se utilizan para la generación de código).

Pestaña Código y comentarios, en la página de preferencias de generación de código

Códigos de tarea configurables

La página de preferencias de Java > Códigos de tarea permite configurar la presentación a escala del área de trabajo de los códigos de tarea que aparecen en los comentarios Java. Estos códigos también se pueden configurar a escala de proyecto por medio de la página de propiedades de Códigos de tarea Java en cada proyecto Java.

Página de preferencias de códigos de tarea

En el editor verá:

Editor con una tarea TODO

Ordenar miembros

Ahora existe la acción Ordenar miembros en el menú contextual de las unidades de complicación Java y en los tipos de nivel superior, que organiza los miembros de una unidad de compilación según el orden de las categorías definido en la página de preferencias de Java > Aspecto > Orden de miembros.

Página de preferencias de Orden de miembros

Diálogo Añadir métodos de delegación

Ahora le resultará fácil generar métodos de delegación (métodos que delegan en un método proporcionado por una variable de instancia) mediante la acción Fuente > Generar métodos de delegación. La acción está disponible en todos los tipos que tengan campos. 

Diálogo Añadir métodos de delegación

Mejoras del Explorador de paquetes

Ahora, los proyectos no Java se presentan en la vista Explorador de paquetes. Se proporciona un filtro que permite excluir los proyectos no Java; y ahora la interacción de abrir/cerrar es coherente con la vista Navegador de recursos.

Proyectos no Java en el Explorador de paquetes

Ahora, las bibliotecas (como la biblioteca del sistema de JRE) se presentan como un solo nodo que tiene uno o más archivos JAR a modo de nodos hijo.

El diseño jerárquico de los paquetes frente al plano

En la vista Paquetes Java (y en la vista Explorador de paquetes) hay una opción que le permite cambiar la manera de visualizar los paquetes. En el diseño jerárquico, los paquetes se visualizan en un árbol, en el que los subpaquetes se sitúan más abajo que los paquetes; en el diseño plano, los paquetes se visualizan en una disposición estándar, en forma de lista plana, en la que todos los paquetes y subpaquetes son hermanos. A continuación figura un ejemplo de diseño jerárquico:

Diseño jerárquico de la vista Explorador de paquetes

Paquetes lógicos

La vista Paquetes Java (perspectiva Examen Java) reúne los paquetes que tienen el mismo nombre en todas las carpetas fuente dentro de un proyecto. Así se muestra una vista de un paquete lógico.

Paquetes lógicos en la vista Paquetes Java

La vista Jerarquía de tipos permite agrupar según el tipo definidor

La vista de métodos de la jerarquía de tipos le permite ordenar los métodos del tipo seleccionado según sus tipos definidores. Por ejemplo, en el caso del tipo AbstractList, puede ver que contiene métodos que se definieron en Object, Collection y List:

Ordenar miembros según el tipo definidor en la jerarquía de tipos

Más filtros para las vistas Proyectos y Explorador de paquetes

Hay más filtros para las vistas Proyectos y Explorador de paquetes:

Filtros de la vista Explorador de paquetes

Restauración de múltiples métodos

Ahora puede restaurar múltiples elementos Java a partir del historial local en una sola operación, seleccionando para ello la acción Restaurar a partir de historial local en el menú contextual. En el panel izquierdo del diálogo, seleccione los elementos que desea restaurar y, para cada uno de ellos, seleccione una entrada del historial en la parte derecha.

Restauración de múltiples métodos

Integración de JUnit

Ejecutar todas las pruebas unitarias

Ahora, el motor de ejecución de pruebas JUnit le proporciona una manera muy fácil de ejecutar todas las pruebas en un paquete, carpeta fuente o proyecto Java especificado.

Configuración de lanzamiento de JUnit

Localizar pruebas unitarias Hay una nueva acción de JUnit, Navegar > Ir a > Pruebas referentes, que permite localizar las pruebas que hacen referencia a un determinado tipo o método y navegar hasta ellas.

Ejecutar como prueba JUnit

Seleccione un método de prueba JUnit en una vista y elija Ejecutar > Ejecutar como > Prueba JUnit. Así se crea una configuración de lanzamiento para ejecutar la prueba seleccionada.

Copyright (c) 2000, 2003 IBM Corporation y otras empresas. Reservados todos los derechos.