Hjem Personlig finansiering Programmering Java: Alt om Generics - dummies

Programmering Java: Alt om Generics - dummies

Video: Data Structures and Algorithms in Java 2025

Video: Data Structures and Algorithms in Java 2025
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

Vis resultatene i forhold til et målområde i Excel-oversiktspanelet - dummies

Vis resultatene i forhold til et målområde i Excel-oversiktspanelet - dummies

Noen ganger trenger du målserier i Excel-oversikten og rapportene dine. I enkelte bedrifter er et mål ikke en verdi - det er en rekke verdier. Det vil si at målet er å holde seg innenfor et definert målområde. Tenk deg at du klarer en liten bedrift som selger esker med kjøtt. En del av jobben din er å ...

Slicer Tilpasninger for Slicers på Excel Dashboard - dummies

Slicer Tilpasninger for Slicers på Excel Dashboard - dummies

Hvis du skal bruke slicers på en Excel-dashbordet, bør du gjøre litt formatering for å få dine skiver til å passe til temaet og oppsettet på instrumentpanelet. Følgende diskusjon dekker noen formateringsjusteringer du kan gjøre til dine skiver. Størrelse og plassering av skiver En skiver oppfører seg som en standard Excel ...

Enkel statistikk i Excel Data Analyse - dummies

Enkel statistikk i Excel Data Analyse - dummies

Excel gir flere praktiske, brukervennlige verktøy for å analysere informasjon som du lagrer i et bord, inkludert noen raske og skitne statistiske verktøy. Se på følgende enkle bord. En enkel dagligvareliste. Et av de smaleste og raskeste verktøyene som Excel gir, er muligheten til enkelt å beregne summen, gjennomsnittet, antall, minimum og maksimum av ...

Redaktørens valg

Bruk fanen Filtre til å modifisere QuickBooks 2014 Rapporter - dummies

Bruk fanen Filtre til å modifisere QuickBooks 2014 Rapporter - dummies

Filtrene kategorien er trolig den mest interessante og en nyttig kategori som er levert av dialogboksen QuickBooks Modify Report. Filtre-fanen lar deg sette opp filtre som du kan bruke til å angi hvilken informasjon som oppsummeres i rapporten. For å bruke Filtrer-fanen velger du først feltet du vil ha ...

Bruk skjermfeltet til å modifisere QuickBooks 2012-rapporter - dummies

Bruk skjermfeltet til å modifisere QuickBooks 2012-rapporter - dummies

Hvis du klikker Tilpass rapport- QuickBooks viser dialogboksen Endre rapport, som du kan bruke til å tilpasse en rapport. Når du tilpasser en rapport, endrer du rapportens utseende, layout og informasjonen som den oppsummerer. Dialogboksen Endre rapport ser annerledes ut for ulike rapporttyper. Likevel, hvis du ser forbi ...

Slik bruker du QuickBooks for din hvite papir forretningsplan - dummies

Slik bruker du QuickBooks for din hvite papir forretningsplan - dummies

QuickBooks kan hjelpe deg skriv en hvit-papir forretningsplan. Folk skriver ofte en forretningsplan for hvitt papir når de vet at de trenger en strategisk plan, men ikke ønsker å ta de harde beslutningene som er nødvendige for en strategisk plan. Personen i denne konfronten skriver en lang hvit-papir forretningsplan for å camouflere den fraværende strategiske planen. ...

Redaktørens valg

Canon 60D elektronisk nivåfunksjon - dummies

Canon 60D elektronisk nivåfunksjon - dummies

Ikke hvert fotografi må være nivå med horisonten. Imidlertid lider mange typer bilder (landskap, bybilder og arkitektonisk fotografi) sterkt når kameraet er vippet. Den gammeldags løsningen for å utjevne kameraet ditt er å bruke et boble- eller åndnivå (funnet i fotobutikker) for å kontrollere kameraets justering med ...

Kamerainnstillingsdisplayet på et Canon EOS Rebel T3-serie Kamera-dummies

Kamerainnstillingsdisplayet på et Canon EOS Rebel T3-serie Kamera-dummies

På din Canon Rebel T3 eller T3i, kan du se en samling av tilleggsinnstillingsdata via kamerainnstillingsdisplayet. Denne skjermen er bare et informasjonsverktøy, men; Du kan ikke justere noen av de rapporterte innstillingene fra denne skjermen. For å vise skjermbildet Kamerainnstillinger på T3i, vis først innstillingsinnstillingene ...

Canon EOS 70D Kameraoppsett - dummies

Canon EOS 70D Kameraoppsett - dummies

Her er en oversikt over knappene, ringer og andre eksterne kontroller på Canon EOS 70D-kameraet ditt. Objektivet vist i de følgende figurene er Canon EF-S 18-135mm IS (bildestabiliseringsmodell) som selges med kameraet; Andre linser kan variere.