Acasă Finanțe personale Programare Java: Totul despre Generics - dummies

Programare Java: Totul despre Generics - dummies

Video: Android 101 by Fred Widjaja 2024

Video: Android 101 by Fred Widjaja 2024
Anonim

Unul dintre scopurile originale de proiectare pentru Java a fost păstrarea limbii cât mai simplă posibil. Dezvoltatorul limbii a luat câteva caracteristici inutile de C ++ și le-a aruncat pe fereastră. Rezultatul a fost un limbaj elegant și elegant. Unii oameni au spus că limba era prea elegantă.

Deci, după câțiva ani de discuții și încurcări, Java a devenit un pic mai complicat. Până în anul 2004, Java avea tipuri de enum, îmbunătățite pentru bucle, import static și alte caracteristici interesante noi. Dar cea mai discutată caracteristică nouă a fost introducerea de medicamente generice.

ArrayList people = nou ArrayList ();

Utilizarea a ceva de genul a fost nou în Java 5. 0. În Java vechi, ați scrie

ArrayList people = new ArrayList ();

În acele zile, un ArrayList putea stoca aproape orice ai vrut să pui în el - un număr, un Cont, o Cameră, un String … orice. Clasa ArrayList a fost foarte versatilă, dar cu această versatilitate au apărut câteva dureri de cap. Dacă ați putea pune ceva într-un ArrayList, nu puteați să previzionați cu ușurință ce veți obține dintr-un ArrayList.

În particular, nu ați putut scrie cu ușurință un cod care presupunea că ați stocat anumite tipuri de valori în ArrayList. Iată un exemplu:

ArrayList things = new ArrayList (); lucruri. adăugați (cont nou ()); Contul myAccount = lucruri. obține (0); // NU UTILIZATI ACEASTA. Este un cod prost.

În a treia linie, apelul pentru a obține (0) ia cea mai mică valoare din colecția de lucruri. Apelul de a obține (0) este în regulă, dar compilatorul se încurcă în încercarea de alocare contului myAccount. Vei primi un mesaj pe a treia linie spunând că orice ai obține de pe lista de lucruri nu poate fi umplut în variabila myAccount.

Obțineți acest mesaj deoarece, până când compilatorul atinge a treia linie, a uitat că elementul adăugat pe al doilea rând a fost de tip Account!

Introducerea genericelor remediază această problemă:

ArrayList things = new ArrayList (); lucruri. adăugați (cont nou ()); Contul myAccount = lucruri. obține (0); // Utilizați acest cod în loc. Este un cod bun.

Adăugarea în două locuri indică compilatorului că lucrurile stochează Cazurile contului - nimic altceva. Deci, în a treia linie din codul precedent, obțineți o valoare din colecția de lucruri. Apoi, deoarece lucrurile stochează numai obiecte Cont, puteți să-mi faceți contul MyAccount la acea valoare nouă.

Java 5. 0 a adăugat generice în Java. Dar la scurt timp după nașterea lui Java 5. 0, programatorii au observat cât de stricat poate fi codul generic.La urma urmei, puteți crea generice în generice. Un ArrayList poate conține o grămadă de rețele, fiecare dintre ele putând fi un ArrayList. Deci, puteți scrie

ArrayList  mess = ArrayList nou  ();

Toată repetarea în declarația de mizerie dă programatorilor o durere de cap! Pentru a evita această urâțenie, versiunile Java 7 și versiunile ulterioare au un operator diamant , . Operatorul de diamante îi spune lui Java să refolosească chestiile complicate în mod obișnuit pe care le-ați pus în partea anterioară a declarației generice.

În acest exemplu, spune Java să reutilizeze , chiar dacă scrieți o singură dată. Iată cum arată codul simplificat Java 7:

ArrayList  mess = new ArrayList ();

În Java 7 și mai târziu, puteți scrie oricare dintre aceste declarații de mizerie - declarația originală, urâtă cu două apariții de ArrayList [], sau o declarație raționalizată (doar ușor urâtă) cu operatorul de diamante și numai cu un ArrayList [] apariție.

Da, codul simplificat este încă complicat. Dar fără toate repetările ArrayList [], codul simplificat este mai puțin greoi. Operatorul de diamante Java 7 ia o singură șansă să copiați ceva incorect și să aveți o eroare mare în codul dvs.

Programare Java: Totul despre Generics - dummies

Alegerea editorilor

Elemente de bază ale electronicii: Folosind un Breadboard - manechine

Elemente de bază ale electronicii: Folosind un Breadboard - manechine

ÎN care puteți introduce componente și fire electronice. Un breadboard este ceea ce utilizați pentru a strânge împreună o versiune temporară a circuitului. Nu trebuie să lipiți fire sau altceva; în loc să vă îmbrăcați componentele și firele în interiorul ...

Electronice: Circuite integrate (IC) Pinouts - manechine

Electronice: Circuite integrate (IC) Pinouts - manechine

Mici circuite integrate din interiorul aparatului dvs. electronic. Pentru a determina ce pivot este care, te uiți în jos pe partea de sus a IC pentru marcajul de ceas, care este, de obicei, o mică crestătură în ambalaj, dar ar putea să fie în schimb un pic de dimple sau un alb ...

Electronice: Semiconductori doping - manechine

Electronice: Semiconductori doping - manechine

Diodele și tranzistoarele sunt fabricate din semiconductori precum siliciul și germaniul. Semiconductoarele pure nu vor conduce curentul electric, dar dacă dați un semiconductor prin adăugarea anumitor tipuri de impurități, cunoscute sub numele de dopanți, schimbați caracteristicile electrice ale semiconductorului și se va efectua atunci când se aplică o tensiune doar în ...

Alegerea editorilor

10 Mari resurse de calcul cloud - dummy

10 Mari resurse de calcul cloud - dummy

Lumea cloud computing continuă să evolueze rapid. Dacă doriți să păstrați la curent ultimele evoluții din lumea cloud computing, aici sunt zece resurse importante pentru a vă urmări.

4 Sfaturi pentru proiectarea aplicațiilor pentru serviciile web Amazon - dummies

4 Sfaturi pentru proiectarea aplicațiilor pentru serviciile web Amazon - dummies

Deoarece Amazon Web Services (AWS) atât de mult din ofertele de infrastructură tradiționale, încercarea de a aplica principiile tradiționale de proiectare a aplicațiilor nu are întotdeauna drept rezultat cele mai bune rezultate. Iată câteva puncte pe care trebuie să le țineți minte: Totul eșuează tot timpul: acestea sunt avertismentele AWS ale lui Amazon și ar trebui să fie și ale tale. În special, cazurile EC2 ...

Avantajele Cloud Computing for Networks

Avantajele Cloud Computing for Networks

Cloud computing este diferit - și, în multe feluri, mai bun - abordare a rețelei. Iată câteva dintre principalele avantaje ale trecerii la rețelele bazate pe cloud: Cost-eficiente: calculul bazat pe cloud este de obicei mai puțin costisitor decât calculul tradițional. Luați în considerare o aplicație tipică pentru server de fișiere: Pentru a implementa un server de fișiere, mai întâi trebuie să cumpărați un fișier ...

Alegerea editorilor

Cum se configurează gestionarea la distanță în dispozitivele Junos - dummies

Cum se configurează gestionarea la distanță în dispozitivele Junos - dummies

Pentru - gestionarea de la distanță la distanță, trebuie să decideți mai întâi ce interfață doriți ca interfață de gestionare. În general, traficul de gestionare nu este excesiv sau chiar substanțial, astfel încât alegerea oricăror dintre interfețele mai lentă de pe router este probabil să fie suficientă. Pe majoritatea dispozitivelor, o conexiune Fast Ethernet este mai mult decât suficientă pentru a gestiona traficul de management. ...

Modul de configurare a gateway-ului SRX Services - dummies

Modul de configurare a gateway-ului SRX Services - dummies

SRX Services Gateway utilizează portul serial al consolei RJ-45. La urma urmei, cineva trebuie să se afle de fapt la dispozitivul de instalare (instalarea hardware la distanță ar putea fi posibilă într-o zi, dar acest lucru este departe). Un alt motiv este faptul că accesul prin oricare dintre ...