Huis Persoonlijke financiën Programmeren van Java: Alles over Generics - dummies

Programmeren van Java: Alles over Generics - dummies

Video: Leren programmeren door het maken van coole games 2024

Video: Leren programmeren door het maken van coole games 2024
Anonim

Een van de oorspronkelijke ontwerpdoelen voor Java was om de taal zo eenvoudig mogelijk te houden. De ontwikkelaar van de taal heeft een aantal onnodig ingewikkelde functies van C ++ gebruikt en deze uit het venster gegooid. Het resultaat was een taal die elegant en strak was. Sommige mensen zeiden dat de taal te glad was.

Dus na een aantal jaren van discussie en gekibbel werd Java een beetje gecompliceerder. Tegen het jaar 2004 had Java typen opsommen, verbeterd voor loops, statische import en enkele andere interessante nieuwe functies. Maar de meest spraakmakende nieuwe functie was de introductie van generieke geneesmiddelen.

ArrayList-personen = nieuwe ArrayList ();

Het gebruik van iets dergelijks was nieuw in Java 5. 0. In ouderwetse Java zou je

ArrayList-mensen = nieuwe ArrayList () schrijven;

In die tijd kon een ArrayList bijna alles opslaan wat je erin wilde stoppen: een nummer, een account, een kamer, een string … wat dan ook. De klasse ArrayList was erg veelzijdig, maar met deze veelzijdigheid ontstonden er enkele hoofdpijnen. Als je iets in een ArrayList zou kunnen plaatsen, zou je niet gemakkelijk kunnen voorspellen wat je uit een ArrayList zou krijgen.

In het bijzonder kon je niet gemakkelijk code schrijven die aannam dat je bepaalde soorten waarden in de ArrayList had opgeslagen. Hier is een voorbeeld:

ArrayList things = new ArrayList (); dingen. toevoegen (nieuw account ()); Account myAccount = dingen. te krijgen (0); // GEBRUIK DIT NIET. HET IS SLECHTE CODE.

In de derde regel pakt de call to get (0) de vroegste waarde in de verzameling van items. De aanroep om te krijgen (0) is goed, maar dan verslikt de compiler zich in de poging tot toewijzing aan mijn account. U krijgt een bericht op de derde regel met de mededeling dat alles wat u uit de dingenlijst krijgt, niet in de variabele myAccount kan worden gestopt.

Je krijgt dit bericht omdat, tegen de tijd dat de compiler de derde regel bereikt, het is vergeten dat het item dat op de tweede regel is toegevoegd van het type Account is!

De introductie van generieke oplossingen lost dit probleem op:

ArrayList things = new ArrayList (); dingen. toevoegen (nieuw account ()); Account myAccount = dingen. te krijgen (0); // GEBRUIK DEZE CODE IN PLAATS. HET IS GOEDE CODE.

Door op twee plaatsen toe te voegen, vertelt de compiler dat dingen Account-instanties opslaan - niets anders. In de derde regel van de voorgaande code krijgt u dus een waarde uit de verzameling dingen. Omdat de dingen alleen accountobjecten opslaan, kunt u myAccount verwijzen naar die nieuwe waarde.

Java 5. 0 heeft generieken toegevoegd aan Java. Maar kort na de geboorte van Java 5. 0 merkten programmeurs hoe onhandig de code voor generieke geneesmiddelen kan zijn.U kunt immers generieke generieken creëren. Een ArrayList kan een aantal arrays bevatten, waarvan elk een ArrayList kan zijn. U kunt dus

ArrayList  mess = new ArrayList  () schrijven;

Alle herhalingen in die puinhoopverklaring geven programmeurs hoofdpijn! Om deze lelijkheid te voorkomen, hebben Java 7 en latere versies een diamantoperator , . De diamantoperator laat Java weten wat voor waanzinnig ingewikkelde dingen je in het vorige deel van de generieke verklaring plaatst.

In dit voorbeeld vertelt Java aan hergebruik , ook al schrijf je maar één keer. Hier ziet u hoe de gestroomlijnde Java 7-code eruitziet:

ArrayList  rommel = nieuwe ArrayList ();

In Java 7 en hoger kunt u een van deze puinhypotheses schrijven: de originele, vervelende verklaring met twee exemplaren van ArrayList [], of de gestroomlijnde (slechts mild vervelende) verklaring bij de diamantoperator en slechts één ArrayList [] optreden.

Ja, de gestroomlijnde code is nog steeds gecompliceerd. Maar zonder alle ArrayList [] herhalingen is de gestroomlijnde code minder omslachtig. De Java 7-diamantoperator neemt één kans weg om iets verkeerd te kopiëren en heeft een grote fout in uw code.

Programmeren van Java: Alles over Generics - dummies

Bewerkers keuze

Hoe u Flash-video maakt en codeert - dummies

Hoe u Flash-video maakt en codeert - dummies

Als de pagina's die u maakt, zijn gewonnen ' t kan worden bekeken op mobiele apparaten (zoals een iPad of een smartphone), kunt u webpagina's maken met prachtige Flash-video. Adobe Flash Professional CS6 heeft een eigen ingebouwde video-encoder. Full-motionvideo in Flash is iets heel moois. U past de video aan voor het bekijken door de doelgroep ...

Hoe een aanpasbare interface te maken in CSS3 - dummies

Hoe een aanpasbare interface te maken in CSS3 - dummies

De grote variëteit en soorten schermen gebruikt om informatie weer te geven, maakt het nodig dat uw CSS3-commando's de gebruiker toestaan ​​om het formaat van de elementen naar wens aan te passen. In de meeste gevallen kunt u de gebruiker eenvoudig toestaan ​​om het element op elke gewenste grootte te maken. Er kunnen zich echter situaties voordoen waarin u de grootte van de grootte moet controleren ...

Hoe u een eenvoudige tabel op uw webpagina maakt - dummies

Hoe u een eenvoudige tabel op uw webpagina maakt - dummies

Tabellen laten u organiseer informatie op uw webpagina en geef het een georganiseerde uitstraling die uw bezoekers nuttig zullen vinden. Bij gebruik zoals bedoeld, hebben tabellen rijen en kolommen. Voor elke spot waar een rij en kolom elkaar kruisen, hebt u een tabelcel. Elke cel kan zijn eigen opmaak hebben: de gegevens erin ...

Bewerkers keuze

Hoe Postproduction Shareninging Filters werken - dummies

Hoe Postproduction Shareninging Filters werken - dummies

Verscherpingsfilters werken in postproductie door de randen (of aangrenzende gebieden met tonaal contrast) te benadrukken aan elkaar) in een afbeelding. Ze creëren een fijne highlight aan de donkere kant van de rand en een piepklein lowlight aan de lichtere kant van de rand. Dit toegevoegde contrast zorgt ervoor dat de randen er scherper uitzien vanaf een ...

HDR Work-Flow voor foto's met één belichting - dummies

HDR Work-Flow voor foto's met één belichting - dummies

In grote lijnen, enkele belichting hoog dynamisch bereik volgt dezelfde workflow als HDR-fotografie tussen haakjes. Er kunnen kleine verschillen zijn, dus hier is een overzicht van de werkstroom: configureer uw camera voor single-shot HDR. Het enige dat u zoekt, is de beste foto die u kunt maken. Besteed aandacht aan de lichtomstandigheden, het onderwerp, beweging en ...

Geavanceerde compacte en superzoomcamera's voor HDR-fotografie - dummies

Geavanceerde compacte en superzoomcamera's voor HDR-fotografie - dummies

Stap omhoog van compacte digitale camera's binnen het budgetbereik, vindt u duurdere compacte digitale camera's voor HDR-fotografie, ook wel high-end compacts, superzoomlenzen en dSLR-look-alikes genoemd. Er zijn zoveel vaak overlappende categorieën dat het je hoofd laat draaien. De twee dingen die deze reeks camera's gemeen hebben, zijn hun ...

Bewerkers keuze

In te schakelen Class Tracking in QuickBooks 2013 - dummies

In te schakelen Class Tracking in QuickBooks 2013 - dummies

Om activity-based costing te gebruiken (ABC ) in QuickBooks 2013 moet u de QuickBooks Class Tracking-functie inschakelen. Met Class Tracking kunt u inkomsten- en onkostentransacties categoriseren als niet alleen vallen in inkomsten- en uitgavenrekeningen, maar ook als vallen in bepaalde klassen. Volg deze stappen om Class Tracking in QuickBooks in te schakelen: Kies Bewerken → Voorkeuren ...

Gebruikt om een ​​exemplaar van een QuickBooks-gegevensbestand te gebruiken - dummies

Gebruikt om een ​​exemplaar van een QuickBooks-gegevensbestand te gebruiken - dummies

Ongeacht of de client verzendt handmatig een accountantskopie van een QuickBooks-gegevensbestand, e-mails een accountantsexemplaar, of verzendt een accountantskopie via de Intuit-bestandsoverdrachtservice, u gebruikt de kopie van de accountant door Bestand → Verzend bedrijfsdossier → Accountantskopie → Open & converteer overzetten te kiezen Bestand commando. Wanneer u deze opdracht kiest, geeft QuickBooks een ...

Hoe Audit Trails te gebruiken in QuickBooks - dummies

Hoe Audit Trails te gebruiken in QuickBooks - dummies

Als u besluit om meerdere gebruikers toegang te geven tot de QuickBooks-gegevens bestand, zult u de QuickBooks Audit Trail-functie waarderen, die bijhoudt wie welke wijzigingen aan het QuickBooks-gegevensbestand aanbrengt. U kunt transacties niet verwijderen uit de lijst of geschiedenis van de audittrail, behalve door gegevens te archiveren en te condenseren. Audit trail inschakelen ...