Računala, Programiranje
Java generičkog: opis i metode
Počevši sa pojavom jezika Java je prošla kroz mnoge promjene, koje su nesumnjivo donio pozitivne trenutke u svojoj funkcionalnosti. Jedan od tih značajnih promjena je uvođenje Java Generički ili generalizacije. Ova funkcionalnost ne samo da jezik fleksibilnije i svestran, ali i mnogo sigurniji u smislu približavanja tipove podataka.
Činjenica je da je prije uvođenja generika u Javi generički kod može stvoriti, ne samo u pogledu tipa referentnog objekta. Takve veze može biti dodijeljen bilo koji predmet. Na kraju krajeva, klase u Javi su implicitne nasljednici klasi Object. Međutim, ovaj pristup je potencijalni izvor mnogih grešaka koje se odnose na vrste sigurnosti u očiglednoj konverzije objekta od objekta do cilja tipa. Kada se koristi generalizacije sve odljevaka izvode se implicitno i automatski, eliminirajući čak potencijal za greške.
Java generičkog: opis i primjer
Razmotrimo jednostavan primjer primjene generalizacije redovne nastave na slici u nastavku. , A zatim nastavite na detaljan pregled svih suptilnosti i nijanse Java Generic.
Obratite pažnju na način na koji je deklaracija klase javlja par. Odmah nakon ime klase, otvorenog kuta zagrada, što je ukazivalo na slovo T. To je neka vrsta punila, koja je u procesu stvaranja instance ove klase će biti zamijenjen određeni tip. To izgleda ovako: Pair
Napomena: počevši od osmog verziju Java, navodeći tip cilja kada proglašenja referentni ugao zagrada u konstruktor mogu ostati prazna. Tako primjer se može napisati kao što je gore: Pair
Kada je klasa proglašen na takav način, onda u njegovom tijelu, umjesto pojedinih vrsta polja, linkova, predmeti vraćeni metode možete koristiti to pismo. Od T pri kreiranju klasu objekta zamjenjuje određenom tipu, prva i druga polja u ovom slučaju će biti tipa Integer.
Po logici argumenata i firstItem secondItem, odnosi se na odgovarajući konstruktor mora biti tipa Integer ili potklase. Ako pokušate da prenosi tip podataka koji se razlikuje od onoga što je navedeno kada se stvara objekt, kompajler neće dozvoliti da tu grešku. Dakle, argumenti konstruktor kada će objekat biti kako slijedi: Pair
Generalizirani s nekoliko parametara vrsta klase
Uopštene klase također može proglasiti više parametara tipa koji su postavljeni u ugao zagradama zarezom. Redizajnirani slučaj par klase je predstavljen ispod.
Kao što možete vidjeti, kada kreirate instancu ove klase u uglastim zagradama treba da ukaže na isti broj vrsta kao parametara. Ako ste upoznati sa ovom vrstom strukture podataka kao karte, možete vidjeti da koristi isti princip. Tu je prvi argument specificira tip ključa, a drugi - vrstu vrijednosti. Treba napomenuti da su tipovi koji se prenose kada objekt argumenti mogu se preklapati. Na primjer, sljedeći oglas par instance klase je apsolutno u pravu: Pair
Neke funkcije generalizacija
Prije nego što krenemo dalje, treba napomenuti da je Java kompajler ne stvaraju različite verzije klase par. U stvari, u procesu sastavljanja uopštene tip sve informacije se briše. Umjesto toga, možete donijeti odgovarajuće vrste, stvarajući posebnu verziju Pair klase. Međutim, u programu i dalje postoji samo generičku verziju klase. Ovaj proces se naziva Java tip Generic čišćenje.
Napomena važna tačka. Linkove na različite verzije istog Java generičke klase ne mogu ukazati na jedan te isti predmet. To je, pretpostavimo da imamo dva linka: Pair
Ograničenja u generičke klase
Važno je znati da generalizacije se može primijeniti samo na referentne vrste, to je da prođe parametara generičke klase java argument mora biti tipa klase. Ove jednostavne vrste, kao što su, npr, dva ili dugo, ne mogu se prenositi. Drugim riječima, sljedeći red par klasa deklaracija nije dozvoljeno: Pair
Još jedan ozbiljan ograničenje je nemogućnost da se stvori instanca parametar tipa. Na primjer, sledeći red će dovesti do kompilaciju greška: T prvi = novi T (). To je očigledno, jer ne znate unaprijed da li argument je donijela punu klasu ili apstraktno, ili čak i sučelje. Isto važi i za stvaranje nizova.
ograničene vrste
Vrlo često postoje situacije kada je potrebno da se ograniči popis tipova koji se može prenijeti kao argument Java generičke klase. Pretpostavimo da smo u našem razredu par želi da obuhvati samo numeričke vrijednosti za daljnje matematičke operacije na njima. Da biste to učinili moramo definirati gornju granicu parametar tipa. To se ostvaruje pomoću natklase oglasa naslijedio sve argumenata u uglastim zagradama. To će izgledati ovako: class Pair
Ovo je uobičajena prijem. Takva ograničenja se često koriste za pružanje tip kompatibilnost parametara u jednoj i istoj klasi. Razmotrimo primjer u našem razredu Pair: klasa Pair
Ograničavanje "dnu" je potpuno isti način, ali umjesto riječi proteže se piše super riječ. To je klasificiran klasu par
metode generički Java i konstruktora
U Javi, generalizacije mogu se ne primjenjuje samo na nastavu, ali i metoda. Na primjer, generički metoda može biti proglašen u redovnom razredu.
Kao što se vidi na slici gore, ad generalizovati metoda nije velika stvar. Dosta prije povratni tip metode da stavi zagrade kuta i odrediti parametre tipa u njima.
Ako je sve učinjeno slično kao konstruktor:
Kut zagradama u ovom slučaju stavio ispred imena projektanta, jer on nema povratnu vrijednost. Rezultat oba programa će biti:
integer
niz
Similar articles
Trending Now