Hem Personliga finanser Programmering Java: Allt om Generics - dummies

Programmering Java: Allt om Generics - dummies

Video: Android 101 by Fred Widjaja 2024

Video: Android 101 by Fred Widjaja 2024
Anonim

Ett av de ursprungliga designmålen för Java var att hålla språket så enkelt som möjligt. Språkets utvecklare tog några onödigt komplicerade funktioner på C ++ och slängde dem ut genom fönstret. Resultatet var ett språk som var elegant och elegant. Vissa människor sa att språket var för snyggt.

Så efter flera års diskussion och skabbning blev Java lite mer komplicerad. Vid år 2004 hade Java enumtyper, förbättrade för loopar, statisk import och några andra intressanta nya funktioner. Men den mest pratade nya funktionen var introduktionen av generika.

ArrayList people = new ArrayList ();

Användningen av något liknande var nytt i Java 5. 0. I gammaldags Java skulle du skriva

ArrayList people = new ArrayList ();

På den tiden kunde en ArrayList lagra nästan vad som helst som du ville lägga i det - ett nummer, ett konto, ett rum, en sträng … någonting. ArrayList-klassen var mycket mångsidig, men med denna mångsidighet kom några huvudvärk. Om du kunde lägga in något i en ArrayList, kunde du inte enkelt förutsäga vad du skulle komma ifrån en ArrayList.

I synnerhet kunde du inte enkelt skriva kod som antog att du hade lagrat vissa typer av värden i ArrayList. Här är ett exempel:

ArrayList saker = ny ArrayList (); saker. lägg till (nytt konto ()); Konto myAccount = saker. få (0); // ANVÄND INTE DETTA. Det är dåligt kod.

I den tredje raden tar samtalet för att få (0) det tidigaste värdet i samlingen av saker. Samtalet att få (0) är okej, men då samlar kompakten på försöket till minAccount. Du får ett meddelande på den tredje raden som säger att allt du får från listan med saker kan inte fyllas i variabeln myAccount.

Du får det här meddelandet, eftersom den gången kompilatorn når den tredje raden, har den glömt att objektet som lagts till på den andra raden var av typen Konto!

Introduktionen av generiker fixar detta problem:

ArrayList things = new ArrayList (); saker. lägg till (nytt konto ()); Konto myAccount = saker. få (0); // ANVÄND DENNA KOD INSTEAD. Det är bra kod.

Lägger till på två ställen berättar kompilatorn om att saker lagrar kontoinstanser - inget annat. Så, i den tredje raden i föregående kod får du ett värde från samlingen. Då eftersom saker endast lagrar kontoobjekt kan du göra minAccount referera till det nya värdet.

Java 5. 0 tillagda generiker till Java. Men strax efter födelsen av Java 5. 0 såg programmerare hur klumpigt generalkoden kan vara.När allt kommer omkring kan du skapa generics inom generics. En ArrayList kan innehålla en massa arrays, som alla kan vara en ArrayList. Så du kan skriva

ArrayList  mess = ny ArrayList  ();

All upprepning i den där röradeklarationen ger programmerare huvudvärk! För att undvika denna fulhet har Java 7 och senare versioner en diamantoperatör , . Diamantoperatören berättar för Java att återanvända vad som helst sämre komplicerade saker du lägger i den föregående delen av den generiska deklarationen.

I det här exemplet berättar Java om att återanvända , även om du skriver endast en gång. Så här ser den strömlinjeformade Java 7-koden ut:

ArrayList  mess = ny ArrayList ();

I Java 7 och senare kan du skriva en av de här röradeklarationerna - den ursprungliga, otäcka deklarationen med två händelser av ArrayList [], eller den rättade (endast mildt otäcka) deklarationen med diamantoperatören och endast en ArrayList [] förekomst.

Ja, den strömlinjeformade koden är fortfarande komplicerad. Men utan alla ArrayList [] upprepning är den strömlinjeformade koden mindre besvärlig. Java 7-diamantoperatören tar bort en chans att du kopierar något felaktigt och har ett stort fel i din kod.

Programmering Java: Allt om Generics - dummies

Redaktörens val

Hur man redigerar bilder i Redigera snabbläge för Photoshop Elements 9 - dummies

Hur man redigerar bilder i Redigera snabbläge för Photoshop Elements 9 - dummies

I Photoshop Element, Redigera Snabbt läge är en uppskattad version av Redigera fullt läge som ger grundläggande fixverktyg tillsammans med några unika funktioner, till exempel en förhandsgranskning av bilden. Här är ett steg för steg arbetsflöde som du kan följa i Redigera snabbläge för att reparera dina foton: Välj ett eller flera foton i ...

Hur man redigerar i Photoshop Elements 10: s Snabb Fotoredigeringsläge - dummies

Hur man redigerar i Photoshop Elements 10: s Snabb Fotoredigeringsläge - dummies

Snabb Fotoredigering är en uppskattad version av Full Photo Edit-läge som bekvämt ger grundläggande fixeringsverktyg och kastar i några unika egenskaper, till exempel en förhandsgranskning av bilden. Här är ett steg för steg arbetsflöde som du kan följa i Quick Photo Edit-läget för att reparera dina foton:

Hur man förbättrar Photoshop Elements-bilder med Photo Effects - dummies

Hur man förbättrar Photoshop Elements-bilder med Photo Effects - dummies

Fotoeffekter i Photoshop Elements 11 fungerar som applicera filter; medan dialogrutan Filtreringsgalleri ger dig många alternativ för att tillämpa ett filter, ger den guidade panelen dig filtereffekter och tar dig genom steg för att justera ljusstyrka, ändra färgton och mättnad och göra andra justeringar för att perfekta resultatet. Du ...

Redaktörens val

Hur man tar bort bilder från din Canon EOS 7D Mark II - dummies

Hur man tar bort bilder från din Canon EOS 7D Mark II - dummies

När du granskar en bild, bestämmer du om det är en målvakt. Om du tittar på en bild på din Canon EOS 7D Mark II, gillar du inte bilden av någon anledning kan du radera det. Men borttagning av bilder måste ske med stor försiktighet eftersom uppgiften inte kan ångras. När du har raderat en ...

Hur man redigerar filmer på en Canon EOS 60D - dummies

Hur man redigerar filmer på en Canon EOS 60D - dummies

60D Edit-funktionen gör det härligt enkelt för att ta bort oönskade delar från början eller slutet av en film direkt på din kamera. Denna ombordredigering är praktisk men grundläggande, så förvänta dig inte mirakel. Här är de enkla stegen för att trimma början eller slutet på en film: Klicka på ikonen Redigera (det ser ut ...

Redaktörens val

Hur man arbetar med text i ett Word 2010-tabell - dummies

Hur man arbetar med text i ett Word 2010-tabell - dummies

Text hinner i ett bord i Word 2010 på en cell-vid-cell basis. Varje cell i ett Word-bord kan ha ett eget styckeformat och en egen uppsättning flikar. Grupper av celler, rader och kolumner och hela tabellen kan väljas och formateras samtidigt, om du vill. All standardtext ...

Hur man arbetar med Word 2010: s decimala flik - dummies

Hur man arbetar med Word 2010: s decimala flik - dummies

Du kan använda decimalfliken i Word 2010 till rad upp kolumner av siffror. Även om du kan använda en rätt flik för att göra detta jobb är decimalfliken ett bättre val. I stället för högerjusterad text, som den högra fliken gör, justerar decimalfliken siffror efter deras decimaldel - perioden i ...

Hur man arbetar med flera Word 2010-dokument på samma gång - dummies

Hur man arbetar med flera Word 2010-dokument på samma gång - dummies

O saker Word 2010 kan göra med dokument! Du kan öppna flera Word-dokument samtidigt och arbeta på mycket av dem, växla mellan de olika öppna dokumenten. Öppnar flera Word-dokument samtidigt Det är inte en fråga om hur Word kan fungera på mer än ett dokument åt gången. Nej, ...