Hjem Personlig finansiering Programmering Java: Alt om Generics - dummies

Programmering Java: Alt om Generics - dummies

Video: C# Tutorial For Beginners - Learn C# Basics in 1 Hour 2025

Video: C# Tutorial For Beginners - Learn C# Basics in 1 Hour 2025
Anonim

Et af de oprindelige designmål for Java var at holde sproget så enkelt som muligt. Sprogets udvikler tog nogle unødigt komplicerede træk ved C ++ og kastede dem ud af vinduet. Resultatet var et sprog, der var elegant og slankt. Nogle mennesker sagde, at sproget var for slank.

Så efter flere års diskussion og skævhed blev Java lidt mere kompliceret. I år 2004 havde Java enum typer, forbedret til sløjfer, statisk import og nogle andre interessante nye funktioner. Men den mest talte nye funktion var introduktionen af ​​generiske stoffer.

ArrayList people = new ArrayList ();

Brugen af ​​noget som var nyt i Java 5. 0. I gammel stil Java ville du skrive

ArrayList people = new ArrayList ();

I disse dage kunne en ArrayList lagre næsten alt, hvad du ville sætte i det - et nummer, en konto, et værelse, en streng … noget. Klassen ArrayList var meget alsidig, men med denne alsidighed kom der nogle hovedpine. Hvis du kunne sætte noget i en ArrayList, kunne du ikke let forudsige, hvad du ville komme ud af en ArrayList.

Du kunne ikke nemt skrive kode, der antog, at du havde gemt bestemte typer værdier i ArrayListen. Her er et eksempel:

ArrayList things = new ArrayList (); ting. tilføj (ny konto ()); Konto myAccount = ting. få (0); // BRUG IKKE DETTE. DET ER DÅRLIG KODE.

I den tredje linje griber opkaldet til (0) den tidligste værdi i samlingen af ​​ting. Opkaldet for at få (0) er okay, men så kører kompilatoren på forsøget på tildeling til myAccount. Du får en besked på den tredje linje, der siger, at hvad som helst du får fra listen, kan ikke udfyldes i variablen myAccount.

Du får denne besked, fordi det tidspunkt, hvor kompilatoren når den tredje linje, har det glemt at varen tilføjet på anden linje var af typen Konto!

Introduktionen af ​​generiske løsninger løser dette problem:

ArrayList things = new ArrayList (); ting. tilføj (ny konto ()); Konto myAccount = ting. få (0); // BRUG DENNE KODE INSTEAD. DET ER GOD KODE.

Tilføjelse på to steder fortæller kompilatoren, at ting gemmer kontoinstanser - intet andet. Så i den tredje linje i den foregående kode får du en værdi fra samlingen af ​​ting. Derefter, fordi ting kun gemmer kontoobjekter, kan du gøre myAccount til den nye værdi.

Java 5. 0 tilføjede generikere til Java. Men kort efter fødslen af ​​Java 5. 0 opdagede programmører, hvordan klodset koden for generiske kan være.Du kan trods alt generere generiske genstande. En ArrayList kan indeholde en masse arrays, som hver kan være en ArrayList. Så du kan skrive

ArrayList  mess = ny ArrayList  ();

Alle gentagelser i denne roddeklaration giver programmererne hovedpine! For at undgå denne grimhed har Java 7 og nyere versioner en diamantoperatør , . Diamantoperatøren fortæller Java at genbruge alt det sindssygt komplicerede ting du lægger i den forrige del af den generiske erklæring.

I dette eksempel fortæller Java at genbruge , selvom du kun skriver en gang. Sådan ser den strømlinede Java 7-kode ud:

ArrayList  mess = ny ArrayList ();

I Java 7 og senere kan du skrive en af ​​disse roddeklarationer - den originale, ubehagelige erklæring med to forekomster af ArrayList [] eller den strømlinede (kun mildt grimme) erklæring med diamantoperatøren og kun en ArrayList [] Hændelse.

Ja, den strømlinede kode er stadig kompliceret. Men uden al ArrayList [] gentagelse er den strømlinede kode mindre besværlig. Java 7-diamantoperatøren fjerner en chance for at du kopierer noget forkert og har en stor fejl i din kode.

Programmering Java: Alt om Generics - dummies

Valg af editor

Hvordan man skriver en check for en fremragende bill i QuickBooks Online - dummies

Hvordan man skriver en check for en fremragende bill i QuickBooks Online - dummies

Du kan Brug QuickBooks Online (QBO) Check vinduet til at skrive en check for at betale et faktura, du tidligere indtastede - noget, du ikke kan gøre i QuickBooks desktop produkt. Brug ikke Check-transaktionen, hvis du planlægger at betale flere regninger. Hvis du vælger en betalingsmodtager, for hvem der foreligger en udestående faktura, QBO ...

Sådan afskrives fakturaer med QuickBooks Online Accountant - dummies

Sådan afskrives fakturaer med QuickBooks Online Accountant - dummies

Vælger skrivefakturaer fra revisionsværktøjerne menuen i QBOA viser siden Skriv ud fakturaer, som giver dig mulighed for at se fakturaer, du måske vil afskrive, og derefter skrive dem til en konto efter eget valg. Øverst på siden indstiller du filtre for at få vist de fakturaer, du vil have ...

Importrevisorens ændringer til QuickBooks 2012 Datafil - dummies

Importrevisorens ændringer til QuickBooks 2012 Datafil - dummies

Din klient importerer de ændringer, som du ' har lavet i revisorens kopi af QuickBooks 2012-datafilen i hendes arbejdskopi af datafilen. For at gøre dette vælger klienten filen Arkiv → Revisorens Kopi → Klientaktiviteter → Kommandoen Import Revisorens Ændringer. QuickBooks viser dialogboksen Importer regnskabsførerens ændringer. For at bruge importkontoens ændringer ...

Valg af editor

Brug Flash med Nature Photography - dummies

Brug Flash med Nature Photography - dummies

Som regel afhænger du af naturlig belysning til naturfotografering. Du kan dog bruge flash-flash eller en ekstra flash-enhed til at øge naturlig belysning. On-flash-kamera De fleste digitale kameraer leveres med en flash på kameraet. Blitzenheden springer op, når det er nødvendigt. Du kan også aktivere flash på kameraet, når du skal tilføje en ...

Brug tredjeparts rå software til HDR fotografi - dummies

Brug tredjeparts rå software til HDR fotografi - dummies

Du kan købe eller downloade et væld af Råredigerere og konvertere fra tredjepart, der hjælper dig med at lave billeder med høj dynamisk rækkevidde. Hvis du er utilfreds med din nuværende software og vil prøve noget nyt, skal du hænde på en eller flere af de programmer, der er angivet i tabellen. Rå redaktører fra tredjepart Navn URL Platform (er) Freeware? ...

Brug dekorative accenter i mad stil og madfotografi - dummies

Brug dekorative accenter i mad stil og madfotografi - dummies

Når fødevaren alene ikke skaber Det drama eller den intrigue, du vil have i din fotografering med dekorative accenter - af farve, form eller tekstur - kan give dine billeder den ekstra effekt, du leder efter. Accenter er forbedringer af fødevarematerialet, og selvom de tjener formålet med at ophæve maden, er de ...

Valg af editor

Sådan finder du formatering i Word 2007 - dummies

Sådan finder du formatering i Word 2007 - dummies

Du kan bruge kommandoen Find til at skure dit Word 2007-dokument til formatering af oplysninger. Hvis du f.eks. Kun vil finde de forekomster af ordet, der ligger i fed skrift, kan du gøre det. Dette eksempel søger efter teksten gåseæg med en skriftstørrelse på 24 point i en ...

Hvordan man finder tekst i Word 2016 - dummies

Hvordan man finder tekst i Word 2016 - dummies

Ikke gider med båndet! For at finde tekst i dit Word 2016-dokument, tryk Ctrl + F, den mindeværdige tastaturgenvej til kommandoen Find. Du ser navigationsruden, svarende til hvad der vises her. Navigationsruden. Skriv den tekst, du vil lokalisere, i feltet Søg dokument. Når du skriver forekomster af teksten ...

Hvordan man finder stilarter i Word 2016 - dummies

Hvordan man finder stilarter i Word 2016 - dummies

Stilarter bor på Word 2016 Home-fanen navngivet Styles-gruppe, som vist her. Hvad du ser på båndet er Style Gallery, som kan udvides til en fuld menu med stilvalg. Hvor Word-stilarter lurer. Klik på dialogboksen launcher i det nederste højre hjørne af Styles-gruppen ...