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 2024

Video: C# Tutorial For Beginners - Learn C# Basics in 1 Hour 2024
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

Fuld redigeringsfunktion i Photoshop Elements 10 - dummies

Fuld redigeringsfunktion i Photoshop Elements 10 - dummies

Fuld fotoredigeringsfunktion tilbyder bundter af værktøjer, som du kan bruge at redigere dine billeder, fra korrektionsværktøjer til fastsættelse af farve og klarhed til filtre, lag og meget mere for at ændre eksisterende fotos eller skabe helt originale billeder fra bunden. Men alle disse værktøjer gør også Komplet fotoredigeringstilstand kompleks. Du kan flytte ind i ...

Generelle blandingsformer i Photoshop Elements - dummies

Generelle blandingsformer i Photoshop Elements - dummies

Elementer spænder over 25 blandingstilstande. Blend modes påvirker hvordan farver interagerer mellem lag og også hvordan farver interagerer, når du anvender maling på et lag. Ikke alene gør blandingstilstande interessante effekter, men du kan også nemt anvende, redigere eller fjerne blandingsfunktioner uden at røre dine billedpixel. De forskellige blandingstilstande ...

Geometriske formindstillinger i Photoshop Elements - dummies

Geometriske formindstillinger i Photoshop Elements - dummies

Geometriindstillinger hjælpe med at definere, hvordan dine figurer ser ud. Klik på nedpegepilen i værktøjsindstillingerne i Elements for at få adgang til de geometriske indstillinger, der beskrives i det følgende. Rektangulære og afrundede rektangel geometriske indstillinger Her er geometriske indstillinger for rektangel og afrundede rektangelformer: Ubegrænset: Giver dig mulighed for at få fri tøj til at tegne en ...

Valg af editor

Sådan bygger du tabeller i HTML5 - dummies

Sådan bygger du tabeller i HTML5 - dummies

Sommetider indeholder din webside data bedst fremlagt i et bord . Du kan bruge HTML5's komplette bordsystem til at oprette tabeller som den i dette eksempel: Den grundlæggende struktur i et bord i HTML-format er rimeligt let at forstå; Tjek koden, der oprettede tabellen i eksemplet:

Hvordan man ændrer gentagne baggrunde på CSS3-steder - dummier

Hvordan man ændrer gentagne baggrunde på CSS3-steder - dummier

Der er situationer, hvor man kun vil en enkelt kopi af et baggrundsbillede på dit CSS3-websted. Det kan være, at billedet du har brugt er noget, der ikke gentager sig godt eller er stort nok til, at du virkelig ikke vil have det gentaget. Følgende procedure viser en teknik, du kan bruge til at fortælle ...

Hvordan man opbygger en webside skabelon fra scratch-dummies

Hvordan man opbygger en webside skabelon fra scratch-dummies

Standardværktøjet på tværs af digitalt agenturer og interne afdelinger til opbygning af website grafik er Adobe Photoshop. Selvom fyrværkeri er optimeret og målrettet til at producere web-grafiske kildefiler, er det bare ikke fanget, sandsynligvis på grund af den massive genoplæringsindsats ville det medføre, at hele afdelinger gør omskifteren. At oprette et nyt ...

Valg af editor

Sådan godkendes medlemmer til din LinkedIn Group - dummier

Sådan godkendes medlemmer til din LinkedIn Group - dummier

Som flere og flere mennesker finder ud af din ny LinkedIn-gruppe, og som medlemmer begynder at deltage, kan du opleve, at nogle af de personer, der har klikket på linket for at deltage, ikke er på din forhåndsgodkendte liste. Måske er de mennesker, du ikke har forstået var på LinkedIn, eller du var ikke klar over, at de var gyldige grupper ...

Hvordan man tilføjer billeder til kroppen i din LinkedIn-profil til Visual Social Marketing - dummies

Hvordan man tilføjer billeder til kroppen i din LinkedIn-profil til Visual Social Marketing - dummies

Ud over et profilbillede giver LinkedIn brugere mulighed for at forbedre de visuelle sociale markedsføringselementer i deres profiler ved at tilføje billeder til deres profilprofil. Du kan tilføje billeder til ethvert afsnit i din LinkedIn-profil. Tilføjelse af billeder til din profil kan hjælpe dig med at fortælle din historie visuelt og ...

Sådan tilføjer du en virksomhedsside til LinkedIn - dummies

Sådan tilføjer du en virksomhedsside til LinkedIn - dummies

, Når du har opfyldt kravene til oprettelse en virksomhedsside på LinkedIn, er det tid til at komme i gang ved at tilføje selskabets side til Linkedins system. For at oprette din virksomhedsside skal du blot følge disse trin: