Göm menyn

TDDE10 Objektorienterad programmering i Java

Tips & Tricks för Eclipse

Magnus Nielsen © 2019
På den här sidan samlar vi ihop lite tips & tricks specifikt för utvecklingsmiljön Eclipse. Inget av det som tas upp här examineras, men det kan underlätta och snabba upp arbetet. Sidan är ganska lång, så först kommer en liten disposition med länkar:

Ändra färgtema

Vilka färger, och färgteman, vi föredrar är i högsta grad individuellt. Dessvärre är default-temat i denna version av Eclipse alldeles utomordentligt dåligt genomtänkt (man kan inte ens läsa fel, rekommendationer, etc). Om så är fallet för just dig kan det vara en god idé att byta färgtema. Byter färgtema gör vi på följande vis:

Klicka på Window-menyn, och gå välj Preferences. Vi får upp följande skärm:


Vid General finns det en liten pil, klicka på den och välj Appearance. Följande meny dyker upp:


Välj ett av alternativen och tryck apply and close. Du kan behöva starta om Eclipse för att alla ändringar ska fungera ordentligt.

Enkel felsökning

Som bekant kan det lite då och då bli galet när vi kör våra program, och de krashar. Eclipse är ganska bra på att hjälpa oss hitta var felet inträffade. För att illustrera använder vi oss av ett enkelt, och väldigt litet, program:
Exempel:


Vårt program krashar när vi kör det och vi får följande meddelende:


Vi ser att det är en massa (nåja, några) klasser iblandade och vi ser vilken typ av fel som uppstått: IndexOutOfBounds. Vi gissar oss till att vi förmodligen har gjort något galet relaterat till indexering. Men var? Vi letar efter våra egna klasser så högt upp som möjligt (ju högre upp desto närmare felet kommer vi). Den rad som är högst upp och nämner en av våra egna klasser är den rad vi söker, i detta enkla fall den nedersta:


Vi klickar på länken inom parentes: (Test.java:11)


Eclipse tar oss till, och markerar, den rad som gjorde att vi krashade och vi kan försöka resonera oss fram till vad som inträffat utan att behöva leta igenom hela projektet / klassen / etc.

Namnkomplettering / förslag (Ctrl-Space)

Java är ett verbost språk, och det kan kännas omständigt att upprepade gånger behöva skriva exempelvis:
public static void main(String[] args) {

}

eller:
System.out.println();
Eclipse har ett inbyggt kortkommando som dels försöker hjälpa till med namnkomplettering, och dels känner igen vissa nyckelord.

Exempel:
Vi vill göra en main metod. Vi skriver main i vårt Eclipsefönster, inuti klassen:


Därefter trycker vi Ctrl-Space och får en lista på förslag (ett eller flera):


Vi trycker enter eller klickar på det förslag som känns rimligast (i detta fall det enda förslaget), och voila:


Exempel:
Samma sak fungerar för System.out.println() med nyckelordet syso:


Nu trycker vi på Ctrl-Space och magic happens:


Ctrl-Space kan även användas för komplettering av klassnamn, variabelnamn, metodnamn, osv. Ibland kan namn vara långa och besvärliga att skriva upprepade gånger.

Exempel:
Vi har ett väldigt långt och besvärligt variabelnamn (fråga mig inte varför). När vi har skrivit de första tecknen trycker vi Ctrl-Space.


Återigen väljer vi det mest passande alternativet genom att klicka eller trycka på enter, och Eclipse löser resten:


Förslag på metoder (punktoperatorn)

När du arbetar kan det vara svårt att hålla alla metoder i huvudet, i synnerhet om du jobbar med Javas egna klasser. I Eclipse kan punktoperatorn underlätta väldigt mycket. Om vi har en variabel som vi vill köra en metod på men är osäkra på hur vad metoden heter kan vi skriva variabelnamnet följt av punkt. I Ecplise ger det oss en lista på tillgängliga metoder för den typen av variabel. Det kommer även att ge oss en beskrivning av den metod som är vald.

Exempel:


Ibland, som ovan, finns det ganska många metoder och det kan vara besvärligt att leta i listan. Om vi vet ungefär vad vi vill göra och vet vad det heter på engelska kan vi skriva nyckelord som används som filter. Låt oss säga att vi vill göra något som har med likhet (equals) att göra:


Välja metod kan vi sedan göra med piltangenterna och enter, eller genom att klicka med musen.

Fixa fel (Ctrl-1)

Eclipse rödmarkerar de flesta rena kompileringsfel som kan förekomma. Utöver det kan Eclipse hjälpa oss fixa felen. Ctrl-1 är ett hjälpsamt kommando när fel uppstår.
Exempel:
Vi försöker använda oss av en klass men klassen blir rödmarkerad:


Om vi flyttar markören till det rödmarkerade ordet och trycker Ctrl-1 får vi en meny med förslag på hur vi kan avhjälpa problemet:


Det första förslaget är att importera Scanner, vilket ju känns rimligt så vi väljer det.


Importen är klar, rödmarkeringarna är borta (det finns fortfarande en gul markering på variabelnamnet eftersom vi aldrig använder variabeln) och vi behövde inte ens komma ihåg i vilket paket som klassen vi ville importera finns.

Hoppa till deklaration (F3)

Ibland när vi jobbar med lite större projekt kan det vara svårt att hålla reda på vad alla metoder gör, eller så kan vi behöva göra förändringar i metoder vi vill använda. Om vi har många, och framförallt stora, klasser i vårt projekt kan det bli besvärligt att sitta och leta efter just den metod vi vill titta på. I Eclipse kan vi använda oss av F3-knappen för att hoppa till deklarationen för den funktion vi har markören på. Observera att det är markören i Eclipse, inte musmarkören, som är av intresse. Jag lämnade musmarkören i bilden för tydlighets skull då Eclipsemarkören syns dåligt på bilderna:


Vi har markören på metoden som vi är intresserade av att titta på, och trycker på F3.


Eclipse har navigerat oss till metodens deklaration, i rätt klass, och vi slipper leta.

Byta namn (refaktorering)

Obs!
Refaktorering har egentligen betydligt fler användningsområden än namnbyten, men det är i synnerhet det som kan vara av intresse i denna kurs och det är mycket användbart.

Det inträffar då och då att vi som programmerare inser att en funktion, variabel eller klass bör ha fått ett bättre / annat namn än vad vi gav den. Om vi använder den funktionen, variabeln eller klassen kan det avskräcka oss från att byta namnet (vi skulle vara tvungna att ändra på många ställen). Med hjälp av refaktorering kan vi göra det väldigt smidigt.
Exempel:
Vi har ett dåligt variabelnamn och vill ändra det till ett bättre, men redan i detta lilla exempel använder vi den på många ställen. Tillräckligt många för att det skulle vara besvärligt att ändra:


Om vi flyttar markören (Eclipsemarkören, inte nödvändigtvis med musen) och trycker alt-shift-r (eller går till refactor menyn och väljer rename) ser det ut på följande sätt:


Nu kan vi ändra namnet och trycka på enter när vi är klara. Namnet kommer att vara ändrat överallt där just den variabeln används.

Autoformatera kod (Shift-Ctrl-F)

Eclipse forsöker formatera koden åt oss, indentera korrekt och gör en hel del annat. Ibland kan vi av misstag råka formatera koden felaktigt ändå, och det kan orsaka viss oreda. Felaktigt formaterad kod är svårläst och besvärlig att navigera. Om vi råkar ställa till formateringen trots att Eclipse försöker hjälpa oss kan vi använda oss av Shift-Ctrl-F för att fixa till det utan att behöva manuellt fixa varje rad.
Exempel:
Koden nedan är ett exempel på hur vi inte vill att det ser ut när vi får in kod:


Vi markerar den del av koden som är innehåller formateringsproblem (i detta fall allt):


När vi trycker på Shift-Ctrl-F inträffar magi:

Kommentera kod (Shift-Ctrl-7)

Ibland, i synnerhet när vi vill testa delar av vår kod eller hitta nya lösningar kan det vara smidigt att kommentera bort några rader för att slippa testa hela programmet, eller för att behålla den gamla lösningen tills vi är säkra på att den nya lösningen vi ska jobba på faktiskt fungerar. För att slippa kommentera rad för rad kan vi markera de rader vi vill kommentera (eller avkommentera) och trycka Shift-Ctrl-7.

Exempel:
Ponera att vi just har lagt till den första raden i main, och vill kommentera bort loopen i koden nedan för att testa så att första raden fungerar som den ska:


Vi markerar den kod vi vill kommentera bort och trycker Shift-Ctrl-7:


När vi vill avkommentera loopen markerar vi de bortkommenterade raderna och trycker Shift-Ctrl-7 igen:

Hoppa till rad (Ctrl-L)

Ofta kan vi få komplieringsfel som säger att vi har gjort fel på rad X i klass Y. Om vi har väldigt stora klasser, hundratals eller till och med tusentals rader kod, kan det vara jobbigt att hitta rätt rad snabbt. För att underlätta med det kan vi använda kortkommandot Ctrl-L.

Exempel:
Vi tar ett lite mindre exempel för att illustrera. Om vi står på rad 3 och vill hoppa till rad 27 skulle det kunna fungera på följande vis:


Nu trycker vi på Ctrl-L och får upp följande prompt där vi matar in 27:


När vi trycker på enter ställer sig markören på rad 27 i koden:


Sidansvarig: Erik Nilsson
Senast uppdaterad: 2019-02-05