Novità nella versione 2.1

Di seguito sono riportate le modifiche più interessanti e significative agli strumenti di sviluppo Java per il rilascio 2.1 di Eclipse, rispetto al rilascio 2.0:

Editor Java

Debugger Java

Refactoring

Generale

Integrazione JUnit

Editor Java

Maggiori opzioni di personalizzazione dell'editor Java

La pagina delle preferenze Java > Editor offre maggiori opzioni di configurazione:

  • è possibile configurare la descrizione a comparsa nell'editor Java mediante la scheda Descrizioni a comparsa
  • è possibile utilizzare la scheda Digitazione per controllare la chiusura automatica di parentesi tonde, parentesi quadre, stringhe e commenti, per la disposizione corretta di stringhe e per altre funzioni utili dell'editor specifiche di Java
  • è possibile utilizzare la scheda Note per personalizzare l'aspetto visivo di errori, avvisi, attività e così via
Descrizioni a comparsa permanenti

È possibile aprire una descrizione a comparsa in una finestra scorrevole e ridimensionabile premendo F2. È possibile selezionare e copiare il contenuto di questa finestra.

Finestra della descrizione a comparsa ridimensionabile

Indicazione di stato critico

L'editor di testo predefinito e l'editor Java visualizzano ora un indicatore di stato critico nell'angolo superiore destro per specificare che il file contiene errori o avvisi.

Editor con indicazione di errore nell'angolo superiore destro

Ricerca nel file

Il gruppo di menu Cerca contiene un nuovo comando (Ricorrenze nel file) per la ricerca di tutte le ricorrenze di tipi, campi, metodi e variabili locali all'interno dell'unità di compilazione o del file di classe in cui si trova l'elemento. Come gli altri comandi di ricerca, gli indicatori vengono generati e presentati come note nell'editor. Le voci presenti nella vista Risultati della ricerca presentano icone diverse per gli accessi in lettura e scrittura. In questo esempio, vengono visualizzati i risultati della ricerca per "fName" in "TestCase.java".

Viste Editor e Ricerca in cui sono visualizzate le ricorrenze di un campo in un file

Correzioni rapide supplementari

In questa versione sono presenti correzioni rapide supplementari per i problemi Java. Fare clic sulla lampadina sul margine sinistro dell'editor Java, premere Ctrl+1 o selezionare Modifica > Correzione rapida dal menu per:

  • Creare i costruttori mancanti
  • Rimuovere i metodi privati, i campi o i tipi non utilizzati
  • Correggere importazioni ambigue (utilizzare anche Organizza importazioni)
  • Creare metodi nel tipo esterno (per i metodi nelle classi anonime)
  • Aggiungere stub per metodi non implementati
  • Aggiungere una proposizione catch o una dichiarazione throws per le eccezioni non rilevate
  • Rimuovere una proposizione catch per le eccezioni non generate
  • Aggiungere metodi astratti non implementati

Altri problemi rilevati dal compilatore che possono essere corretti utilizzando Correzione rapida includono:

  • Campi di istanza utilizzati in un contesto statico
  • Metodi o campi statici a cui è stato eseguito l'accesso con un metodo non statico
  • Dichiarazione di un metodo astratto in un tipo non astratto
  • Metodo, campo, tipo o importazione non visibili
  • Stringhe non esternalizzate

Finestra Correzione rapida

Assistente rapido

Le azioni di Correzione rapida sono ora disponibili anche in assenza di errori. Posizionare il segno di immissione su un identificatore e premere Ctrl+1 (Modifica > Correzione rapida) per richiamare l'Assistente rapido.

  • La ridenominazione collegata è disponibile su tutti gli identificatori.

    Assistente rapido per la ridenominazione collegata

    La ridenominazione collegata attiva la funzione di modifica in modalità collegata (come nei modelli), in cui la modifica dell'identificatore comporta la modifica di tutte le ricorrenze di quel nome all'interno del file di origine.

  • È possibile sostituire la proposizione catch con la proposizione throws (disponibile nelle proposizioni catch).
  • È possibile assegnare istruzioni di espressione alla nuova variabile locale o al nuovo campo (disponibile in tutte le istruzioni di espressione). Ad esempio, vector.iterator(); verrà trasformato in
    Iterator iterator= vector.iterator();
    I suggerimenti per i nomi di variabili vengono forniti dall'Assistente rapido.
  • È possibile rimuovere le istruzioni o i blocchi if/while/for/do e la rientranza del contenuto verrà corretta automaticamente.
  • È possibile racchiudere le selezioni su più righe nei modelli.
Miglioramenti dell'assistente al codice
  • Nel compilatore Java, è stato migliorato il grado di rilevanza di una proposta in base al tipo previsto nel contesto. Ad esempio, per StringBuffer sb= new [code assist], StringBuffer viene ora visualizzato all'inizio dell'elenco.
  • L'assistente al codice nell'editor Java fornisce ora un completamento delle parole chiave.
Vista Struttura Java migliorata

È possibile regolare la struttura Java in modo da visualizzare solo i membri del tipo principale dell'unità di compilazione premendo il pulsante Icona Passa al tipo di livello superiore (Passa al tipo di livello superiore) nella barra degli strumenti della vista Struttura.

Barra degli strumenti della vista Struttura Java

Codice Java con collegamento ipertestuale

Passando su un codice Java, premere il tasto Ctrl e spostare il mouse per trasformare identificatori di classi, metodi e campi in collegamenti selezionabili per la dichiarazione corrispondente. Questa opzione può essere configurata mediante la scheda Java > Editor > Esplorazione.

Collegamenti ipertestuali nel codice Java

Passaggio al membro successivo Utilizzare Ctrl + Maiusc + Freccia giù (Esplora > Vai a > Membro successivo) e Ctrl + Maiusc + Freccia su (Esplora > Vai a > Membro precedente) nell'editor Java per passare rapidamente tra i metodi, i campi, gli inizializzatori e i tipi dei membri.
Individuazione di un numero maggiore di errori

L'editor Java annota ora più tipi di errore, incluse le eccezioni non rilevate e le variabili non utilizzate, che richiedono una dettagliata analisi del flusso.

Editor che visualizza un errore rilevato alla digitazione

Strutture interne

Premere Ctrl+F3 (Esplora  > Apri struttura) nell'editor Java per visualizzare una struttura interna dell'elemento nella posizione corrente del cursore. In alternativa, premere Ctrl+O (Modifica > Apri struttura) per visualizzare la struttura interna del file di origine corrente.

Struttura interna

Informazioni a comparsa nella panoramica dell'editor

Il righello della panoramica dell'editor Java (a destra del frame) mostra ora informazioni a comparsa per le note dei problemi.

Informazioni a comparsa del righello della panoramica

Editor file di classe

L'editor del file di classe è stato unito all'editor dell'unità di compilazione. Supporta ora l'evidenziazione della riga del cursore, i numeri di riga, l'evidenziazione delle note, il righello della panoramica, il margine di stampa, l'espansione della selezione semantica e lo spostamento mediante la tastiera tra i membri del file di classe.

Debugger Java

Vista Thread e controlli

La nuova vista Thread e controlli del debugger mostra i thread che presentano blocchi e i thread che sono in attesa di acquisirli.

Vista Controlli con i cicli di deadlock

 

Punti di interruzione e punti di controllo di istanze È ora possibile impostare punti di interruzione & punti di controllo specifici per un'istanza di un determinato oggetto. Nella vista Variabili, scegliere Punti di interruzione istanza... dal menu di scelta rapida delle variabili.

Finestra di dialogo di filtro delle istanze

Punti di interruzione condizionali migliorati Un punto di interruzione condizionale tradizionale viene attivato da un'espressione booleana impostata su "true". È ora possibile dichiarare punti di interruzione condizionali attivati ogni volta che cambia il valore di un'espressione. Inoltre, l'assistente al codice è ora disponibile quando si immettono dati nell'espressione condizionale.

Finestra di dialogo delle proprietà del punto di interruzione

Passaggio alla selezione

Il debugger Java consente ora di passare su un singolo metodo all'interno di una serie di chiamate di metodo concatenate o nidificate. Evidenziare il metodo su cui si desidera passare e selezionare Passa alla selezione dal menu di scelta rapida dell'editor Java.

Passaggio alla selezione

Elementi watch È possibile creare elementi watch selezionando un'espressione nell'editor Java e utilizzando l'azione Watch (disponibile nel menu di scelta rapida e nel menu Esegui). Inoltre, un elemento watch può essere creato selezionando una variabile e utilizzando l'azione Watch.
Filtri di analisi Ora che un'azione Avanza con filtri è stata aggiunta alla barra degli strumenti e al menu di debug, i filtri di analisi sono più facili da utilizzare. Inoltre, al menu di scelta rapida di debug sono state aggiunte delle azioni per semplificare la creazione di filtri di analisi per il tipo o il pacchetto associato al frame di stack selezionato.
Ritorno a capo nella vista Variabili L'area dei dettagli delle viste Variabili e Espressioni del debugger supporta ora il ritorno a capo, disponibile nel menu a discesa della vista.

Azione del ritorno a capo nel menu a discesa della vista Variabili

Collegamenti ipertestuali della traccia di stack

Le tracce di stack Java presenti nella console vengono ora visualizzate con collegamenti ipertestuali. Quando si posiziona il mouse su una riga di una traccia di stack, il puntatore assume l'aspetto di una mano e la traccia di stack viene sottolineata. Premendo il pulsante del mouse, si apre il file di origine Java associato e il cursore viene posizionato sulla riga corrispondente.

Traccia di stack con collegamenti ipertestuali nella vista Console

Dimensioni del buffer della console La vista Console conserva solo N caratteri di output più recenti(l'impostazione predefinita è 80 K). Le dimensioni del buffer della console possono essere configurate mediante la pagina delle preferenze Debug > Console.
Filtro di costanti e variabili static

Nel menu a discesa della vista Variabili sono ora disponibili due nuove azioni - Mostra costanti e Mostra le variabili static. Queste azioni attivano la visibilità delle variabili static e static finali.

Azioni di filtro delle variabili nel menu a discesa della vista Variabili

Passaggi più rapidi

Le prestazioni dell'azione Esegui > Passa su (F6) del debugger sono state migliorate. È possibile notare la differenza quando si tiene premuto il tasto F6 o si seleziona rapidamente il pulsante Passa su.

Puntatore di istruzione

Quando si esegue il debug, l'editor Java indica ora la riga attualmente in esecuzione con una freccia nel margine sinistro. Questa freccia è piena per il frame di stack iniziale e vuota per i frame di stack non iniziali.

Puntatore di istruzione nel righello dell'editor

Refactoring

Nuove azioni di refactoring

Sono ora disponibili molte azioni di refactoring nuove:

  • Sposta metodo istanza questo refactoring consente di spostare il metodo nella classe dichiarata di uno dei relativi parametri o campi. Viene creato un nuovo metodo e il vecchio metodo viene convertito in un metodo delegato (passando il puntatore su this, se necessario).
  • Sposta i membri a un livello inferiore questo refactoring consente di spostare un insieme di metodi e campi da una classe alle relative sottoclassi.
  • Metodo Inline: questo refactoring esegue l'inline delle chiamate ad un determinato metodo Java, nel sito della chiamata selezionato o in qualsiasi posizione venga chiamato il metodo. È disponibile polimorficamente mediante la voce di menu Refactor > Inline.
  • Costante inline: questo refactoring esegue l'inline degli utilizzi di un determinato campo finale static Java, nel sito di riferimento selezionato o in qualsiasi posizione venga fatto riferimento al campo. È disponibile polimorficamente mediante la voce di menu Refactor > Inline.
  • Estrai costante: questo refactoring crea un campo finale static dall'espressione selezionata, sostituisce il riferimento a un campo e, facoltativamente, utilizza altre posizioni laddove si presenta la stessa espressione.
  • Converti variabile locale in campo: questo refactoring consente di convertire una variabile locale in un campo. Se la variabile viene inizializzata al momento della creazione, l'operazione sposta l'inizializzazione alla dichiarazione del nuovo campo o ai costruttori della classe.
  • Converti classe anonima in classe nidificata: se una classe anonima interna presente nel codice è troppo grande, questo refactoring consente di convertire la classe in una classe di membri.
  • Converti tipo nidificato in livello superiore: questo refactoring crea una nuova unità di compilazione Java per il tipo di membro selezionato, aggiornando tutti i riferimenti in base alla necessità. Per i tipi di membri non statici, viene aggiunto un campo per consentire l'accesso all'istanza di inclusione precedente.
  • Estrai interfaccia: questo refactoring crea una nuova interfaccia con un insieme di metodi e consente alla classe selezionata di implementare l'interfaccia, modificando facoltativamente i riferimenti alla classe in base alla nuova interfaccia, quando possibile.
  • Utilizza Supertipo laddove possibile: questo refactoring sostituisce le ricorrenze di un tipo con uno dei relativi supertipi, dopo aver identificato tutti i punti in cui è possibile questa sostituzione.
Azioni di refactoring migliorate

Sono state migliorate molte azioni di refactoring:

  • Modifica firma metodo: questo refactoring sostituisce il refactoring Modifica parametri. Consente di modificare la visibilità di un metodo e il tipo di restituzione e di aggiungere, rimuovere, ridenominare e riordinare i parametri del metodo.
  • Sposta i membri a un livello superiore: questo refactoring è stato migliorato in diversi modi
    • è possibile spostare i membri verso l'alto di più di 1 livello nella gerarchia
    • anziché spostare i membri a un livello superiore, è possibile dichiarare i metodi come astratti nel supertipo selezionato
    • è possibile calcolare l'insieme più piccolo di membri che è necessario spostare a un livello superiore per soddisfare i limiti di visibilità
  • Estrai metodo: è possibile riordinare e ridenominare i parametri del metodo estratto.
  • Refactoring di ridenominazione e spostamento: quando si ridenomina un tipo o un pacchetto Java (o si sposta un tipo in un altro pacchetto), è ora possibile aggiornare il nome completo dell'elemento nei file non Java.

Nuova interfaccia utente di refactoring semplificata

Attivando un'operazione di refactoring Java, viene ora visualizzata una piccola finestra di dialogo iniziale per raccogliere le informazioni necessarie all'esecuzione di questo refactoring. Fare clic su OK per eseguire questo refactoring senza altre operazioni o fare clic su Anteprima per visualizzarne gli effetti prima di stabilire se procedere o meno.

Nuova finestra di dialogo di refactoring semplificata

Generale

Percorsi di output e di origine Java più flessibili

L'impostazione del percorso di generazione Java offre una flessibilità migliorata:
  • I filtri di esclusione consentono di escludere i file di origine selezionati presenti in una cartella di origine da compilare.
  • Le cartelle di origine possono essere ora nidificate - utilizzare un filtro di esclusione nella cartella principale per escludere la cartella secondaria da aggiungere al percorso di generazione.
  • Il percorso dei file di classe generati può essere impostato singolarmente per ciascuna cartella di origine.
  • È inoltre possibile utilizzare cartelle collegate come cartelle di origine, cartelle di classe o cartelle di output.

Pagina delle proprietà del percorso di generazione Java

Impostazioni del compilatore Java specifico del progetto Oltre alle impostazioni delle preferenze del compilatore Java a livello di spazio di lavoro (Java > Compilatore), è possibile ora configurare le opzioni per uno specifico progetto Java attraverso la nuova pagina delle proprietà Compilatore Java presente in ciascun progetto Java.

Più opzioni del compilatore Java

  • I progetti Java che dipendono l'uno dall'altro possono in genere essere compilati correttamente con una singola azione di generazione. Per consentire i cicli, è necessario ridurre la gravità associata alle dipendenze circolari nella pagina delle preferenze Java > Compilatore.
  • Il compilatore Java può ora utilizzare metodi privati, campi o dichiarazioni di tipo non utilizzati. Questa opzione consente di individuare codici inutilizzati ed errori secondari.
  • Il compilatore Java visualizza ora un avviso, quando viene assegnata una variabile con il relativo valore. Ciò consente di individuare un errore secondario nei metodi setter e nelle dichiarazioni del costruttore, laddove il nome di un parametro è simile al nome di un campo. Questa opzione può essere configurata mediante la pagina delle preferenze Java > Compilatore > Stile. Di seguito viene riportato un esempio:
Assegnazione senza effetti

Configurazione prefissi e suffissi per variabili migliorata

Oltre a configurare il prefisso o il suffisso per i campi, è ora possibile specificare il prefisso o il suffisso per i campi statici, i parametri e le variabili locali. Queste impostazioni della pagina delle preferenze Java > Generazione codice vengono utilizzate nell'assistente al codice, nella correzione rapida e nel refactoring, ogni volta che deve essere calcolato il nome di una variabile.

Pagina delle preferenze delle convenzioni dei nomi

Generazione codice personalizzabile

La pagina delle preferenze Java > Generazione codice consente di personalizzare il codice e i commenti generati in un modo simile ai normali modelli. Questi modelli di codice vengono utilizzati ogniqualvolta viene generato il codice. (I commenti sostituiscono i modelli 'filecomment' e 'typecomment' esistenti utilizzati per la generazione del codice).

Scheda Codice e commenti nella pagina delle preferenze Generazione codice

Tag di attività configurabili

La pagina delle preferenze Java > Tag di attività viene utilizzata per configurare la presentazione a livello di spazio di lavoro dei tag di attività visualizzati nei commenti Java. È anche possibile configurare questi tag su una base per progetto mediante la pagina delle proprietà Tag di attività Java, presente in ciascun progetto Java.

Pagina delle preferenze Tag di attività

Nell'editor verrà visualizzato:

Editor con un'attività TODO

Ordinamento membri

Una nuova azione Ordina membri è ora disponibile nel menu di scelta rapida delle unità di compilazione Java e dei tipi di livello superiore che riorganizzano i membri di un'unità di compilazione in base all'ordine delle categorie definito nella pagina delle preferenze Java > Aspetto > Ordinamento membri.

Pagina delle preferenze Ordinamento membri

Finestra di dialogo per l'aggiunta di metodi delegati

È ora possibile generare facilmente dei metodi delegati (metodi che vengono delegati a un metodo fornito da una variabile di istanza) utilizzando l'azione Origine > Genera metodi delegati. Questa azione è disponibile in tutti i tipi con campi.

Finestra di dialogo per l'aggiunta di metodi delegati

Miglioramenti di Esplora pacchetti

I progetti non-Java vengono ora presentati nella vista Esplora pacchetti. I progetti non-Java vengono filtrati mediante un filtro e l'interazione apertura/chiusura è ora coerente con la vista Selezione risorse.

Progetti non-Java in Esplora pacchetti

Le librerie (ad esempio la libreria di sistema JRE) vengono ora presentate come un singolo nodo con uno o più JAR come elementi secondari.

Layout gerarchico e senza effetti dei pacchetti

Un'opzione della vista Pacchetti Java (e della vista Esplora pacchetti) consente di modificare il modo in cui i pacchetti sono visualizzati. L'opzione Gerarchico consente di visualizzare i pacchetti in una struttura ad albero con sottopacchetti al di sotto dei pacchetti; Senza effetti consente di visualizzare i pacchetti nella disposizione standard, come un elenco in cui tutti i pacchetti e i sottopacchetti sono di pari livello. Di seguito viene riportato un esempio di layout gerarchico:

Layout gerarchico in Esplora pacchetti

Pacchetti logici

La vista Pacchetti Java (prospettiva di esplorazione Java) unisce i pacchetti dello stesso nome presenti nelle cartelle di origine di un progetto. Viene visualizzata una vista di un pacchetto logico.

Pacchetti logici nella vista Pacchetti Java

La vista Gerarchia tipi supporta il raggruppamento mediante la definizione dei tipi

La vista relativa ai metodi della gerarchia tipi consente di ordinare i metodi del tipo selezionato mediante la definizione dei tipi. Ad esempio, è possibile vedere che AbstractList contiene metodi definiti in Object, Collection e List:

Ordinamento membri mediante la definizione dei tipi nella gerarchia tipi

Più filtri per le viste Esplora pacchetti e Progetti

Sono ora disponibili più filtri per le viste Esplora pacchetti e Progetti:

Filtri di Esplora pacchetti

Ripristino di più metodi

È ora possibile ripristinare più elementi Java dalla cronologia locale in un'unica operazione, selezionando Ripristina da cronologia locale dal menu di scelta rapida. Nel riquadro sinistro della finestra di dialogo, selezionare gli elementi da ripristinare e, per ciascun elemento selezionato, scegliere una voce della cronologia a destra.

Ripristino di più metodi

Integrazione JUnit

Esecuzione di tutte le verifiche dell'unità

Il programma di esecuzione verifiche JUnit consente ora di eseguire facilmente tutte le verifiche in un progetto Java, in una cartella di origine o in un pacchetto specificati.

Configurazione di avvio JUnit

Individuazione delle verifiche dell'unità La nuova azione JUnit Esplora > Vai a > Verifiche di riferimento individua e passa alle verifiche che fanno riferimento a un determinato tipo o metodo.

Esegui come verifica JUnit

Selezionare un metodo di verifica JUnit in una vista e scegliere Esegui > Esegui come > Verifica JUnit. Viene creata una configurazione di avvio per eseguire la verifica selezionata.

Copyright (c) 2000, 2003 IBM Corporation e altri. Tutti i diritti riservati.