Komma igång med Eclipse och J2SE 5.0

Eftersom Eclipse version 3.1 har fullständigt stöd för de nya funktionerna i J2SE 5.0 (kodnamn "Tiger"). En av de viktigaste konsekvenserna av det stödet är att du kanske inte märker det alls - allt du förväntar dig ska fungera för J2SE 1.4, inklusive redigering, kompilering, felsökning, snabbrättning, omfaktorisering, källåtgärder, sökning osv fungerar sömlöst med de nya typerna och syntaxen i J2SE 5.0's. I det här dokumentet introducerar vi några av de mer intressanta möjligheterna som Eclipse-användare stöter på när de arbetar med J2SE 5.0.

Förutsättningar

Om du vill utveckla kod som är kompatibel med J2SE 5.0 behöver du J2SE 5.0 Java Runtime Environment (JRE). Om du startar Eclipse för första gången med J2SE 5.0 JRE används den som standard. I annat fall måste du använda inställningssidan Öppnar inställningssidan Installerade JRE Java > Installerade JRE för att registrera den i Eclipse.

I det här dokumentet introduceras vissa av de nya språkfunktionerna i J2SE 5.0 kortfattat, men det är ingen riktig självstudiekurs för dessa funktioner.Se för information.

Kompilatorns kompatibilitetsnivå

Om du vill använda de nya funktionerna i J2SE 5.0 måste du arbeta med ett projekt som har kompatibilitetsnivå 5.0 aktiverad och 5.0 JRE. Nya projekt får automatiskt 5.0-kompatibilitet när du väljer en 5.0 JRE på första sidan i Öppnar guiden för nya Java-projekt Guiden Nytt Java-projekt:

Guiden Nytt projekt

Om du vill konvertera ett befintligt J2SE 1.4-projekt till J2SE 5.0 kan du göra så här:
  1. Se till att J2SE 5.0 JRE är installerat.
  2. Börja använda 5.0-funktionerna i koden.
  3. När ett kompilatorfel flaggas använder du snabbrättning för att uppdatera projektets kompatibilitetsnivå:

    Snabbrättning för att aktivera J2SE 5.0

För mer fininställd kontroll kan du ställa in kompilatorns kompatibilitetsnivå globalt för en arbetsyta (med inställningssidan Öppnar inställningen för Java-kompilatorn Java > Java > Kompilator) eller individuellt för varje projekt (från projektets sammanhangsmeny väljer du Egenskaper > Java-kompilator). Projekt med andra kompatibilitetsnivåer kan samexistera på arbetsytan och vara beroende av varandra. Du kan också finjustera de typer av kompilatorvarningar och fel som produceras för varje projekt med hjälp av Egenskaper > Java-kompilator > Fel/varningar > Alternativ för J2SE 5.0

Generiska typer

Tack vare generiska typer kan objekt från samma klass på ett säkert sätt verka på objekt av olika typer. Till exempel möjliggör det en försäkring vid kompilering att en List<String> alltid innehåller variabler av typen String och en List<Integer> alltid innehåller variabler av typen Integer.

Överallt där en icke generisk typ hanteras kan en generisk typ hanteras: Dessutom har en ny omfaktorisering lagts till: Med Härled generiska typargument... kan du härleda typparametrar för varje typreferens i en klass, ett paket eller ett helt projekt:

Anropa Räkna fram generiska typargument

Anropa omfaktoriseringsprocedurerna:

Anropade Härled generiska typargument...

Eclipse har nya funktioner för sökning efter referenser till generiska typer. Studera följande exempel:

Exempel med fyra olika parametriserade listförekomster.

Om du väljer referensen till List<Integer> och använder Sök > Referenser > Projekt markeras List-typerna på alla fyra rader:

Sök utan filter

Med hjälp av sökvyns meny kan du filtrera resultaten:

Med Filtrera inkompatibla lämnas endast referenser till typer som är tilldelningskompatibla med den valda typen:

Filtrera inkompatibla

Med Filtrera inexakta lämnas endast typreferenser med exakt samma signatur:

Filtrera oskarpa

Anteckningar

Med anteckningar bifogar du metadata om hur Java-typer och metoder används och dokumenteras till Java-källan och sedan kan påverka kompileringen eller frågas efter vid körning. Med @Override utlöser du till exempel en kompileringsvarning om den annoterade metoden inte ersätter en metod i en superklass:

Override-anteckning

Allt som du kan göra med en Java-typ kan du göra med en anteckning:

En mycket användbar anteckning med fullständigt stöd i Eclipse är @SuppressWarnings. Studera till exempel en privat metod som för tillfället inte används men som du helst inte vill ta bort:

Varning! Oanvänd privat metod

Om du anropar snabbrättning för varningen får du förslaget att lägga till anteckningen @SuppressWarnings:

SuppressWarnings förslagna

Om du väljer snabbrättningen läggs anteckningen till. I Eclipse-kompilatorn uppmärksammas anteckningen så att varningen för foo tas bort:

SuppressWarnings infogade

Enumerationer

Enumerationer är typer som instantieras vid körning av en känd antalsbegränsad uppsättning objekt:

enumerationstyp

Återigen, allt du kan göra med en Java-klass kan du göra med en enumeration:

Automatisk typomslutning

Med automatisk typomslutning och automatisk borttagning av typomslutning får du en elegant syntax när primitiva typer tilldelas till eller hämtas från objektreferenser:

framhävd automatisk typomslutning

Med källmanipuleringsfunktionerna i Eclipse hanterar du automatisk typomslutning sömlöst, så att korrekta typer ges till nya lokala variabler och korrekt kodhjälp. För att koden ska förstås är det också möjligt att flagga förekomster av automatisk typomslutning eller icke automatisk typomslutning som kompileringsvarningar (genom att använda avsnittet Möjliga programmeringsproblem på inställningssidan Öppnar inställningssidan Fel/varningar Java > Compiler > Fel/varningar) eller framhäva dem med syntaxfärgning (via avsnittet Java > Uttryck med automatisk typomslutning på inställningssidan Öppnar inställningssidan Syntaxfärgning Java > Redigerar > Syntaxfärgning):

Aktivera framhävning av automatisk typomslutning

Utökad for-slinga

För det vanliga fallet med verkan på varje element i en vektor eller samling i turordning finns en ny och renare syntax i J2SE 5.0. Eclipse innehåller en "foreach"-kodmall som automatiskt kan gissa vilken samling som ska itereras:

förslag på foreach-mall

Välja mallprodcedurer:

infogad foreach-mall

Eclipse innehåller även snabbhjälpen "Konvertera till utökad for-slinga" för att uppgradera for-slingor med 1.4-format där det är möjligt.

Övriga

Alla andra funktioner i J2SE 5.0 hanteras flexibelt i Eclipse verktyg för redigering, sökning och kodmanipulering: Trevlig kodning!