Komme i gang med Eclipse og J2SE 5.0

Fra og med versjon 3.1 har Eclipse full støtte for de nye funksjonene i J2SE 5.0 (kodenavn "Tiger"). En av de viktigste konsekvensene av denne støtten er at du kanskje ikke engang merker den. Alt du forventer skal virke for J2SE 1.4 -- inkludert redigering, kompilering, feilsøking, hurtigrettelser, refaktorisering, kildehandlinger, søk osv -- virker helt glatt med J2SE 5.0s nye typer og syntaks. I dette dokumentet introduserer vi noen av de mer interessante funksjonene som Eclipse-brukere vil finne når de arbeider med J2SE 5.0.

Forutsetninger

For å utvikle kode som samsvarer med J2SE 5.0, trenger du et J2SE 5.0 Java Runtime Environment (JRE). Hvis du starter Eclipse for første gang med et J2SE 5.0 JRE, vil det bruke det som standard. Ellers må du bruke preferansesiden Åpner preferansesiden Installerte JREer Java > Installerte JREer for å registrere den i Eclipse.

Dette dokumentet gir en svært kort introduksjon av noen av de nye språkfunksjonene i J2SE 5.0, men det gis ikke grundig opplæring i disse funksjonene. Du finner mer informasjon her.

Kompilatorens samsvarsnivå

For å bruke de nye J2SE 5.0-funksjonene, må du arbeide på et prosjekt som har 5.0-samsvarsnivå aktivert, og som har en 5.0 JRE. Nye prosjekter får automatisk 5.0-samsvar når du velger en 5.0-JRE på første side av veiviseren Åpner veiviseren Nytt Java-prosjekt Nytt Java-prosjekt:

Veiviseren Nytt prosjekt

Slik konverterer du et eksisterende J2SE 1.4-prosjekt til J2SE 5.0:
  1. Pass på at du har J2SE 5.0 JRE installert.
  2. Begynn å bruke 5.0-funksjonene i koden.
  3. Når en kompilatorfeil flagges, bruker di Hurtigrettelse til å oppdatere prosjektets samsvarsnivå.

    Hurtigrettelse for å aktivere J2SE 5.0

For mer presis kontroll kan kompilatorens samsvarsnivå defineres globalt for et arbeidsområde (med preferansesiden Åpner preferansesiden Java-kompilator Java > Kompilator) eller enkeltvis for hvert prosjekt (velg Egenskaper> Java-kompilator fra prosjektets hurtigmeny). Prosjekter med forskjellige samsvarsnivåer kan eksistere sammen i arbeidsområdet og være avhengige av hverandre. Du kan også finjustere hvilke typer kompilatoradvarsler og -feil som produseres for hvert prosjekt, ved hjelp av Egenskaper > Java-kompilator > Feil/advarsler > J2SE 5.0-alternativer.

Generiske typer

Generiske typer gjør det mulig for typer av samme klasse å virke trygt på objekter av forskjellige typer. For eksempel gjør de det mulig ved kompilering å sikre at Liste<Streng> alltid inneholder strenger, og at List<Heltall> alltid inneholder heltall.

Overalt der Eclipse behandles en ikke-generisk type, kan det behandle en generisk type: I tillegg er ny refaktorisering lagt til: Utled generiske typeargumenter kan utlede typeparametere for hver typereferanse i en klasse, en pakke eller et helt prosjekt:

Aktivere Utled generiske typeargumenter

Starting av refaktorisering gir:

Utled generiske typeargumenter startet

Eclipse har nå nye alternativer for søk etter referanser til generiske typer. Se på dette eksempelet:

Eksempel med fire forskjellige parameteriserte opprettelser av forekomster av List

Når du velger referansen til List<Heltall> og bruker Søk > Referanser > Prosjekt , vil listetypene utheves på alle fire linjer:

Søk uten noen filtre

Resultatene kan filtreres ved hjelp av menyen Søk-visning:

Filtrer inkompatible etterlater bare referanser til typer som er tildelingskompatible med den valgte typen:

Filtrer inkompatible

Filtrer unøyaktige etterlater bare typereferanser med nøyaktig samme signatur.

Filtrer unøyaktige

Annotasjoner

Annotasjoner knytter metadata om hvordan Java-typer og -metoder brukes og dokumenteres, til Java-kilde, og kan så påvirke kompileringen eller spørres ved kjøretid. For eksempel vil @Override utløse en kompilatoradvarsel hvis den annoterte metoden ikke overstyrer en metode i en superklasse:

Override-annotasjon

Alt du kan gjøre med en Java-type, kan du gjøre med en annotasjon:

En svært nyttig annotasjon med full støtte i Eclipse er @SuppressWarnings. For eksempel kan du vurdere en privat metode som er ubrukt, men som du helst ikke vil slette:

Advarsel: Ubrukt privat metode

Starting av en hurtigrettelse ved advarselen foreslår tilføyelse av en @SuppressWarnings-annotasjon:

SuppressWarnings foreslått

Når du velger hurtigrettelse, legges en annotasjon til. Eclipse-kompilatoren respekterer annotasjonen ved å fjerne advarselen på foo:

SuppressWarnings satt inn

Oppregninger

Oppregninger er typer som det lages forekomster av ved kjøretid av et kjent, endelig sett med objekter:

enum-type

Nok en gang er det slik at alt du kan kjøre med en Java-klasse, også kan gjøres med en oppregning:

Autoruting

Autoruting og autoavruting muliggjør elegant syntaks når primitive typer tildeles til eller hentes fra objektreferanser:

Autoruting uthevet

Eclipses kildemanipuleringsfunksjoner håndterer autoruting elegant og gir riktige typer til nye lokale variabler og riktig kodehjelp. For kodeforståelse er det også mulig å flagge forekomster av autoruting eller autoavruting som kompilatoradvarsler (ved hjelp av delen Potensielle programmeringsproblemer på preferansesiden Åpner preferansesiden Feil/advarsler Java > Kompilator > Feil/advarsler), eller utheve dem med syntaksfarger (via delen Java > Auto(av)rutede uttrykk på preferansesiden Åpner preferansesiden Syntaksfarger Java > Redigeringsprogram > Syntaksfarger.

Aktivere utheving for autoruting

Utvidet FOR-sløyfe

For det vanlige tilfellet der hvert element i en matrise eller samling stilles inn i tur og orden, har J2SE 5.0 en ny, klarere syntaks. Eclipse har en "foreach"-kodemal som automatisk kan gjette hvilken samling som skal gjentas:

foreach-mal foreslått

Valg av malen gir følgende resultat:

foreach-mal satt inn

Eclipse har også en hurtighjelp kalt "Konverter til utvidet for-sløyfe" som oppgraderer for-sløyfer av 1.4-stil når det er mulig.

Annet

Alle andre funksjoner i J2SE 5.0 håndteres fleksibelt av Eclipses redigerings-, søke- og kodemanipuleringsverktøy: Lykke til med kodingen!