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.
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
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.
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
New Java Project wizard:
For more fine-tuned control,
the compiler compliance level can be set globally for a workspace
(with the
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
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
.
Eclipse provides new options when searching for references to generic types. Si consideri questo esempio:
List<Integer>
e utilizzando
Cerca > Riferimenti > Progetto
verranno evidenziati i tipi di elenco in tutte le quattro righe:
Filtra incompatibile lascia solo i riferimenti ai tipi compatibili al tipo selezionato:
Filtra inesatto lascia solo i riferimenti ai tipi con la stessa firma:
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:
Un'annotazione molto utile, completamente supportata Eclipse è @SuppressWarnings
.
Ad esempio, si consideri un metodo privato attualmente inutilizzato ma che non si desidera eliminare:
@SuppressWarnings
:
foo
:
Le enumerazioni sono tipi istanziati al runtime da un insieme di oggetti noto e completo:
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:
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
Java > Compiler > Errors/Warnings preference page),
or highlight them using syntax coloring
(via the
Java > Auto(un)boxed expressions section of the
Java > Editor > Syntax Coloring preference page):
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:
Eclipse also provides a "Convert to enhanced for loop" quick-assist to
upgrade 1.4-style for
loops where possible.