Olisi mukavaa, jos voisimme kirjoittaa yhden lajittelumenetelmän, joka voisi lajitella elementit kokonaisluvussa, merkkijonotaulukossa , tai minkä tahansa tyyppinen taulukko, joka tukee tilaamista.
Java Generic -menetelmien ja yleisten luokkien avulla ohjelmoijat voivat määrittää joukon yhdellä menetelmämenettelyllä liittyvien menetelmien joukon tai yhdellä luokkailmoituksella. vastaavien tyyppien vastaavasti.
Generics tarjoaa myös käännösaika-tyyppisen turvallisuuden, jonka avulla ohjelmoijat voivat saada virheellisiä tyyppejä kääntöhetkellä.
Java Generic -konseptin avulla voimme kirjoittaa yleisen menetelmän objektien taulukon lajittelemiseksi, käytä taulukon elementtien lajittelemiseksi yleistä menetelmää Integer-taulukot, Double-taulukot, String-taulukot ja niin edelleen.
Yleiset menetelmät
Voit kirjoittaa yksi yleinen menetelmäilmoitus, joka voi olla noin täynnä erityyppisiä argumentteja. Kääntäjä käsittelee kutakin menetelmäkutsua yleiseen menetelmään välitettävien argumenttityyppien perusteella. Seuraavat ovat yleisten menetelmien määrittelysäännöt –
-
Kaikilla yleisillä menetelmämenettelyillä on tyypin parametriosa, joka on rajattu kulmasulkeilla (< ja >), joka edeltää menetelmän palautustyyppiä (< E > seuraavassa esimerkissä ).
-
Jokainen tyyppiparametriosio sisältää yhden tai useamman pilkulla erotetun tyypin parametrin. Tyyppiparametri, joka tunnetaan myös nimellä tyyppimuuttuja, on tunniste, joka määrittää yleisen tyyppinimen .
-
Tyyppiparametreja voidaan käyttää palautustyypin ilmoittamiseen ja toimimaan paikkamerkkeinä yleiselle menetelmälle välitetyille argumenttityypeille, jotka tunnetaan todellisina tyypin argumentteina.
-
Yleisen menetelmän runko ilmoitetaan kuten minkä tahansa muun menetelmän runko. Huomaa, että tyypin parametrit voivat edustaa vain viitetyyppejä, ei primitiivisiä tyyppejä (kuten int, double ja char).
Esimerkki
Seuraava esimerkki kuvaa kuinka voi tulostaa erityyppisen taulukon yhdellä yleisellä menetelmällä –
Tämä tuottaa seuraavan tuloksen –
Tulos
Array integerArray contains:1 2 3 4 5 Array doubleArray contains:1.1 2.2 3.3 4.4 Array characterArray contains:H E L L O
Rajoitetut tyypin parametrit
Saattaa olla aikoja, jolloin haluat rajoittaa sellaisia tyyppejä, jotka voidaan siirtää tyypin parametrille. Esimerkiksi numeroilla toimiva menetelmä saattaa haluavat hyväksyä vain numeron tai sen alaluokkien esiintymät. Tätä varten rajoitetut tyypin parametrit ovat.
Rajoitetun tyyppisen parametrin julistamiseksi listaa tyypin parametrin nimi, jota seuraa laajennettu avainsana, jota seuraa sen yläraja.
Esimerkki
Seuraava esimerkki kuvaa, kuinka laajennuksia käytetään yleisessä merkityksessä tarkoittamaan joko ”jatkuu” (kuten luokissa) tai ”työväline” (kuten käyttöliittymissä) . Tämä esimerkki on yleinen tapa palauttaa suurin kolmesta vertailtavasta objektista –
Tämä tuottaa seuraavan tuloksen –
Tulos
Max of 3, 4 and 5 is 5Max of 6.6,8.8 and 7.7 is 8.8Max of pear, apple and orange is pear
Yleiset luokat
Yleinen luokkailmoitus näyttää olevan ei-yleinen luokkailmoitus, paitsi että luokan nimeä seuraa tyypin parametriosa.
Kuten yleisen Menetelmissä yleisen luokan tyyppiparametriosassa voi olla yksi tai useampi tyyppiparametri pilkuilla erotettuna. Näitä luokkia kutsutaan parametrisoiduiksi luokiksi tai parametrisoiduiksi tyypeiksi, koska ne hyväksyvät yhden tai useamman parametrin.
Esimerkki
Seuraava esimerkki kuvaa, kuinka voimme määritellä yleisen luokan –
Tämä tuottaa seuraavan tuloksen –
Tulos
Integer Value :10String Value :Hello World