Hjem Personlig finansiering Programmering Java: Alt om Generics - dummies

Programmering Java: Alt om Generics - dummies

Video: Data Structures and Algorithms in Java 2024

Video: Data Structures and Algorithms in Java 2024
Anonim

Et av de opprinnelige designmålene for Java var å holde språket så enkelt som mulig. Språket utvikler tok noen unødvendig kompliserte funksjoner av C ++ og kastet dem ut av vinduet. Resultatet var et språk som var elegant og elegant. Noen sa at språket var for slank.

Så etter flere år med diskusjon og snikking ble Java litt mer komplisert. I år 2004 hadde Java enum typer, forbedret for sløyfer, statisk import og noen andre interessante nye funksjoner. Men den mest omtalte nye funksjonen var introduksjonen av generikk.

ArrayList people = new ArrayList ();

Bruken av noe som var nytt i Java 5. 0. I gammelt Java ville du skrive

ArrayList people = new ArrayList ();

I disse dager kunne en ArrayList lagre nesten alt du ønsket å sette i det - et nummer, en konto, et rom, en streng … noe. ArrayList-klassen var veldig allsidig, men med denne allsidigheten kom det noen hodepine. Hvis du kunne sette noe inn i en ArrayList, kunne du ikke lett forutsi hva du ville komme ut av en ArrayList.

Spesielt kan du ikke enkelt skrive kode som antok at du hadde lagret visse typer verdier i ArrayList. Her er et eksempel:

ArrayList ting = ny ArrayList (); tingene. legg til (ny konto ()); Konto myAccount = ting. få (0); // IKKE BRUK DETTE. Det er dårlig kode.

I den tredje linjen griper samtalen for å få (0) den tidligste verdien i samlingen av ting. Anropet for å få (0) er greit, men så kaster kompilatoren på forsøk på oppdrag til myAccount. Du får en melding på den tredje linjen som sier at hva du får fra listen ting, kan ikke fylles i variabelen myAccount.

Du får denne meldingen fordi når kompilatoren når den tredje linjen, har den glemt at varen lagt til på den andre linjen var av typen Konto!

Innføringen av generikk reparerer dette problemet:

ArrayList ting = ny ArrayList (); tingene. legg til (ny konto ()); Konto myAccount = ting. få (0); // BRUK DENNE KODEN INSTEAD. DET ER GOD KODE.

Legge til to steder forteller kompilatoren at ting lagrer Konto-forekomster - ingenting annet. Så, i den tredje linjen i den forrige koden, får du en verdi fra tingsamlingen. Da, fordi ting kun lagrer Kontoobjekter, kan du gjøre minAccount referere til den nye verdien.

Java 5. 0 lagt generiske til Java. Men kort etter fødselen av Java 5. 0, oppdaget programmererne hvor klumpete koden for generikk kan være.Tross alt, kan du opprette generikk innen generikk. En ArrayList kan inneholde en rekke arrays, som hver kan være en ArrayList. Så du kan skrive

ArrayList  mess = ny ArrayList  ();

All repetisjonen i denne rotteerklæringen gir programmererne hodepine! For å unngå denne ugliness, har Java 7 og nyere versjoner en diamantoperatør , . Diamantoperatøren forteller at Java skal gjenbruke det som er sindssyk komplisert ting du legger inn i den forrige delen av generisk deklarasjon.

I dette eksemplet forteller Java at du skal bruke , selv om du skriver bare én gang. Slik ser den strømlinjeformede Java 7-koden ut:

ArrayList  mess = ny ArrayList ();

I Java 7 og senere kan du skrive en av disse rotteklarasjonene - den opprinnelige, ekkeldeklarasjonen med to forekomster av ArrayList [], eller den strømlinjeformede (bare mildt ekkel) erklæringen med diamantoperatøren og bare en ArrayList [] hendelse.

Ja, den strømlinjeformede koden er fortsatt komplisert. Men uten all ArrayList [] repetisjonen er den strømlinjeformede koden mindre tungvint. Java 7-diamantoperatøren tar bort en sjanse for at du kopierer noe feil og har en stor feil i koden din.

Programmering Java: Alt om Generics - dummies

Redaktørens valg

Vanlige visuelle studio-tastaturgenveier - dummier

Vanlige visuelle studio-tastaturgenveier - dummier

Du kan få tilgang til mange av funksjonene du bruker i Visual Studio til Lag en Silverlight-applikasjon gjennom tastaturgenveier. Her er de vanlige snarveiene som hjelper deg med å utføre oppgaver raskt i Visual Studio. Tastatur snarvei Handling Ctrl + Alt + F1 Åpne Visual Studio Documentation Ctrl + Shift + B Bygg programmet Ctrl + F5 Kjør prosjektet Ctrl + Alt + X Åpne verktøykassen hvis ...

Velg riktig format for e-postmarkedsføringsmeldingen din - dummies

Velg riktig format for e-postmarkedsføringsmeldingen din - dummies

Som Du komponerer markedsførings-e-postene dine, husk at formatet på e-posten din visuelt kommuniserer hovedideen til innholdet før publikum selv begynner å lese det. Forbrukerne forventer at formatet på e-posten din samsvarer med informasjonen den inneholder, slik at bruk av riktig format bidrar til å bygge publikums tillit. Velg ...

Kombinere flere samtaler til handling i din markedsføring e-post - dummies

Kombinere flere samtaler til handling i din markedsføring e-post - dummies

Din e-postmarkedsføringslisten består sannsynligvis av prospekter og kunder i ulike stadier av kjøpesyklusen med litt forskjellige interesser, så en del av publikum vil aldri være klar til å reagere umiddelbart på hver handling. Selv om alle på din e-postliste er klare til handling, er dine anrop til handling ...

Redaktørens valg

Opprett en Pivot-tabell YTD-totalvisning for Excel-rapporten - dummies

Opprett en Pivot-tabell YTD-totalvisning for Excel-rapporten - dummies

En nyttig rapportvisning I et Excel-pivottabell er YTD-totalsvisningen. Noen ganger er det nyttig å fange et løp-total-visning for å analysere bevegelsen av tall på en årlig basis (YTD) basis. Denne figuren illustrerer et pivottabell som viser en løpende total omsetning per måned for hvert år. I denne visningen er du ...

Opprett en pivottabel ved hjelp av Excels interne datamodell - dummies

Opprett en pivottabel ved hjelp av Excels interne datamodell - dummies

I enkelte tilfeller vil du kanskje opprett et pivottabell fra grunnen ved hjelp av Excels eksisterende interne datamodell som kildedata. Her er trinnene for å gjøre det: Velg Sett inn → PivotTable fra båndet. Dialogboksen Create PivotTable åpnes. Velg alternativet Bruk en ekstern datakilde, som vist, og klikk deretter på ...

Hvordan lage en standard snikker i Power Pivot - dummies

Hvordan lage en standard snikker i Power Pivot - dummies

Slicers tilbyr et brukervennlig grensesnitt med som du kan filtrere en Power Pivot pivottabell. Det er på tide å lage din første slicer. Bare følg disse trinnene:

Redaktørens valg

Alarmhendelsen i GameMaker: Studio-dummies

Alarmhendelsen i GameMaker: Studio-dummies

Alarmer er utmerket for når du vil ha tid Handlinger i din spill i GameMaker: Studio. For eksempel, hvis du vil at spilleren bare skal skyte kuler en gang hvert annet sekund, kan du sette en alarm for det. Hvis du vil når nye fiendtlige fly vises, kan du sette en alarm for det ...

Flytt retningsaktive handlinger i GameMaker: Studio - dummies

Flytt retningsaktive handlinger i GameMaker: Studio - dummies

I GameMaker: Studio, Flytt-fanen er den første kategorien i vinduet Objektegenskaper. Her er en liste over hver av handlingene du kan tilordne objektene. I følgende definisjoner brukes begrepet Instance for å referere til hva handlingen påvirker. Men du konfigurerer handlingen i objektet ...

Andre hendelser i GameMaker: Studio - dummies

Andre hendelser i GameMaker: Studio - dummies

I GameMaker: Studio, Andre hendelser er de som ikke anses verdige av sitt eget sted på menyen Event. Disse andre hendelsene kan være ganske kjempebra. Menyelementene er ganske mye selvforklarende, så det er ikke nødvendig med detaljer her. For fullstendige beskrivelser av hver av disse elementene, kan du alltid trykke F1 i GameMaker og ...