Getting Started with Eclipse and J2SE 5.0

Since release 3.1, Eclipse includes full support for the new features of J2SE 5.0 (codenamed "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. Otherwise, you will need to use the Opens the Installed JRE preference page Java > Installed JREs preference page to register it with Eclipse.

This document introduces some of the new language features in J2SE 5.0 very briefly, but it is not a proper tutorial for these features. See here for more information.

Libello di conformità del compilatore

To use the new J2SE 5.0 features, you must be working on a project that has a 5.0 compliance level enabled and has a 5.0 JRE. New projects will automatically get 5.0-compliance when choosing a 5.0 JRE on the first page of the Opens the new Java project wizard New Java Project wizard:

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

For more fine-tuned control, the compiler compliance level can be set globally for a workspace (with the Opens the Java compiler preference page Java > Compiler preference page) or individually for each project (from the project's context menu, choose Properties > Java Compiler). 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:

Invoking Infer Generic Type Arguments

Le conseguenze del richiamo del refactoring sono:

Opzione Deduci argomenti di tipo generico richiamata

Eclipse provides new options when searching for references to generic types. Si consideri questo esempio:

Example with four different parameterized instantiations of List

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

Search with no filters

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:

Filter inexact

Annotazioni

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:

Override annotation

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:

Warning: unused private method

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

SuppressWarnings proposed

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

SuppressWarnings inserted

Enumerazioni

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

enum type

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:

autoboxing highlighted

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. For code understanding, it is also possible to flag instances of autoboxing or autounboxing conversions as compile warnings (using the Potential Programming Problems section of the Opens the Errors/Warnings preference page Java > Compiler > Errors/Warnings preference page), or highlight them using syntax coloring (via the Java > Auto(un)boxed expressions section of the Opens the Syntax coloring preference page Java > Editor > Syntax Coloring preference page):

Enabling highlighting for autoboxing

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 provides a "foreach" code template that can automatically guess the collection to be iterated:

foreach template proposed

Le conseguenze della scelta del modello sono:

foreach template inserted

Eclipse also provides a "Convert to enhanced for loop" quick-assist to upgrade 1.4-style for loops where possible.

Altro

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