Guida introduttiva per Eclipse 3.1 e J2SE 5.0

Eclipse 3.1 include supporto per le nuove funzioni di J2SE 5.0 (il cui nome in codice è "Tiger"). La conseguenza più importante della presenza di tale supporto, è che tutte le funzioni di J2SE 1.4, tra cui l'editazione, la compilazione, il debug, le correzioni rapide, i refactoring, le azioni relative all'origine, la ricerca, ecc., funzioneranno in modo simile con i nuovi tipi e la nuova sintassi di J2SE 5.0. In questo documento, vengono introdotte alcune tra le funzioni più interessanti di J2SE 5.0.

Prerequisiti

Per sviluppare codice compatibile con J2SE 5.0, sarà necessario l'ambiente JRE (Java Runtime Environment) J2SE 5.0. Se Eclipse viene avviato per la prima volta, per impostazione predefinita verrà utilizzato un JRE J2SE 5.0. In caso contrario, sarà necessario utilizzare la finestra JRE installati (Finestra > Preferenze > Java > JRE installati) e registrarlo con Eclipse.

Questo documento contiene una breve introduzione ad alcune nuove funzioni relative al linguaggio in J2SE 5.0, ma non una vera e propria esercitazione per tali funzioni.

Libello di conformità del compilatore

Per utilizzare le nuove funzioni di J2SE 5.0, è necessario utilizzare un progetto per il quale è stato abilitato il livello di conformità 5.0. I nuovi progetti possono essere contrassegnati conformi per 5.0 nella prima pagina della procedura guidata Nuovo > Progetto:

Procedura guidata Nuovo progetto

Per convertire un progetto J2SE 1.4 esistente in un progetto J2SE 5.0:
  1. Assicurarsi che JRE J2SE 5.0 sia installato.
  2. Utilizzare le funzioni 5.0 nel codice.
  3. Quando viene indicato un errore di compilazione, utilizzare le correzioni rapide per aggiornare il livello di conformità del progetto:

    Correzione rapida per abilitare J2SE 5.0

Per un migliore controllo, è possibile impostare il livello di conformità del compilatore per tutto lo spazio di lavoro (Finestra > Preferenze > Java > Compilatore) o per ciascun progetto (dal menu di scelta rapida del progetto, scegliere Proprietà > Compilatore Java). I progetti con livelli di conformità diversi possono coesistere nello spazio di lavoro e dipendere uno dall'altro. È anche disponibile regolare il tipo di avvisi ed errori di compilazione prodotti per ciascun progetto (Proprietà > Compilatore Java> Errori/Avvisi > Opzioni di J2SE 5.0

Tipi generici

I tipi generici consentono agli oggetti di una stessa classe di operare su oggetti di tipo diverso. Ad esempio, assicurano che in fase di compilazione List<String> contenga sempre String e che List<Integer> contenga sempre Integer.

Laddove Eclipse gestisce un tipo non generico, può gestire anche un tipo generico:

Inoltre, è stato aggiunto un nuovo refactoring: l'opzione Deduci argomenti di tipo generico è in grado di dedurre i parametri per ciascun riferimento a tipi in una classe, in un pacchetto o in un intero pacchetto:

Richiamo di Deduci argomenti di tipo generico

Le conseguenze del richiamo del refactoring sono:

Opzione Deduci argomenti di tipo generico richiamata

Eclipse 3.1 fornisce nuove opzioni durante la ricerca dei riferimenti a tipi generici. Si consideri questo esempio:

Esempio con quattro diverse istanze parametrizzate dell'elenco

Selezionando il riferimento su List<Integer> e utilizzando Cerca > Riferimenti > Progetto verranno evidenziati i tipi di elenco in tutte le quattro righe:

Ricerca senza filtri

Utilizzando il menu della vista Ricerca, è possibile filtrare i risultati:

Filtra incompatibile lascia solo i riferimenti ai tipi compatibili al tipo selezionato:

Filtra incompatibile

Filtra inesatto lascia solo i riferimenti ai tipi con la stessa firma:

Filtra inesatto

Note

Le annotazioni informano i metadati sulle modalità d'uso dei tipi Java e dei metodi nell'origine Java e su come possono influenzare la compilazione e essere sottoposti a query durante il runtime. Ad esempio @Override attiverà un avviso di compilazione se il metodo annotato non sovrascrive un metodo in una superclasse:

Annotazioni di sostituzione

Tutte le operazioni che è possibile eseguire con un tipo Java , possono essere eseguite con le annotazioni:

Un'annotazione molto utile, completamente supportata Eclipse è @SuppressWarnings. Ad esempio, si consideri un metodo privato attualmente inutilizzato ma che non si desidera eliminare:

Avviso: metodo privato inutilizzato

Richiamando la Correzione rapida nell'avviso, viene suggerito di aggiungere un'annotazione @SuppressWarnings:

SuppressWarnings proposta

Selezionando la correzione rapida, viene aggiunta l'annotazione. Il compilatore Eclipse risponde all'annotazione rimuovendo l'avviso in foo:

SuppressWarnings inserita

Enumerazioni

Le enumerazioni sono tipi istanziati al runtime da un insieme di oggetti noto e completo:

tipo enum

Anche in questo caso, qualsiasi operazione che è possibile eseguire con una classe Java, può essere eseguita con un'enumerazione:

Boxing automatico

Le funzioni di boxing e unboxing automatico consentono di produrre una sintassi lineare quando vengono assegnati tipi primitivi ai riferimenti agli oggetti, o quando vengono da essi richiamati:

Evidenziazione boxing automatico

Le funzioni di manipolazione dell'origine di Eclipse gestiscono la funzione di boxing automatico, fornendo i tipi corretti alle nuove variabili locali e un nuovo assistente al codice. Per comprendere il codice, è anche possibile indicare le istanze di boxing e unboxing automatici come avvisi di compilazione (Finestra > Preferenze > Java > Compilatore > Errori/Avvisi > Opzioni di J2SE 5.0 > Conversioni di boxing e unboxing), o evidenziarle utilizzando i colori per la sintassi Finestra > Preferenze > Java > Editor > Colorazione della sintassi > Java > Espressioni boxing automatico):

Abilitazione evidenziazione per il boxing automatico

Miglioramento per i cicli

Nei casi in cui si opera su i singoli elementi di una matrice o di un insieme, J2SE 5.0 consente una nuova sintassi, più chiara. Eclipse 3.1 fornisce un modello di codice "foreach" che rileva automaticamente la raccolta da esaminare:

Modello foreach proposto

Le conseguenze della scelta del modello sono:

Modello foreach inserito

Eclipse 3.1 inoltre fornisce un assistente rapido "Converti in avanzato per ciclo" per aggiornare i cicli for di stile 1.4 laddove possibile.

Altro

Tutte le altre funzioni di J2SE 5.0 vengono gestite dagli strumenti di editazione, ricerca e manipolazione codice di Eclipse: