Računala, Programiranje
Java Generički lijekovi: opis i metode
Počevši s pojavom Java jeziku je kroz mnoge promjene, koje bez sumnje donijeli pozitivne trenutke u svojoj funkcionalnosti. Jedan od tih značajnih promjena je uvođenje Java generičkim ili generalizacija. Ta funkcija ne samo da je jezik fleksibilniji i svestran, ali i mnogo sigurnije u smislu dovođenja vrste podataka.
Činjenica je da je prije uvođenja generičkih lijekova u Java generički kod mogao biti stvoren, ne samo u pogledu tipa referentni objekt. Takve veze mogu biti dodijeljena bilo koji objekt. Uostalom, nastava u Java su implicitne klase Object nasljednici. Međutim, ovaj pristup je potencijalni izvor mnogih pogrešaka u vezi s vrstama osiguranja u očitoj pretvorbe objekta od objekta do ciljne vrste. Kada koristite generalizacije sve baca se izvode implicitno i automatski, uklanjanje čak i mogućnost pogrešaka.
Java Generički lijekovi: opis i primjer
Razmotrimo jednostavan primjer primjene generalizacije na redovne nastave na slici ispod. A zatim nastavite s detaljnim pregledom svih suptilnosti i nijanse Java općenito.
Obratite pozornost na način na koji je klasa izjava javlja par. Odmah nakon imena klase, otvorene uglate zagrade, što je ukazalo na slovo T. To je vrsta punila, koja je u procesu stvaranja instancu te klase će biti zamijenjen određenog tipa. To izgleda ovako: Par
Napomena: počevši od osme verzije Jave, navodeći vrstu cilja kada proglašenje referentnog zagrade u konstruktoru može ostati prazno. Dakle, primjer se može napisati kao što je gore: Pair
Kada klasa je deklariran na takav način, onda u njegovom tijelu, umjesto da određene vrste polja, linkovi, objekata vraćenih metodama koje možete koristiti to pismo. Od T prilikom kreiranja klasa objekt zamjenjuje određenom tipu, prva i druga polja u tom slučaju će biti tipa Integer.
Slijedeći logiku argumenata i firstItem secondItem, iz odgovarajućeg konstruktora također mora biti tipa Integer ili podrazreda. Ako pokušate prenijeti vrstu podataka koji se razlikuje od onoga što je navedeno prilikom izrade objekta, prevodilac neće dopustiti pogrešku. Dakle, argumenti konstruktora kada objekt će biti kao što slijedi: Pair
Generalizirani s nekoliko parametara tipa klase
U općim klase može deklarirati više parametara tipa koji su postavljeni u zagrade zarezom. Redizajnirana i slučaj par klasa je u nastavku.
Kao što možete vidjeti, kada se stvoriti instancu te klase u zagrade treba navesti isti broj vrsta kao parametara. Ako ste upoznati s ovom vrstom strukture podataka kao mapa, možete vidjeti da se koristi točno isti princip. Tamo je prvi argument specificira tip ključa, a drugi - tip vrijednosti. Valja napomenuti da su vrste prenose Kada je objekt argumenti mogu preklapati. Na primjer, sljedeći oglas par klasa primjer je apsolutno točna: Par
Neke značajke generalizacije
Prije odlaska dalje, treba napomenuti da je Java prevodilac ne stvara različite verzije klase paru. Naime, u procesu sastavljanja generalizirana pisati sve informacije se briše. Umjesto toga, donijeti odgovarajuće vrste, stvarajući posebnu verziju Pair klase. Međutim, u programu ima još samo generički verzija klase. Ovaj proces se naziva tipa Generički čišćenje Java.
Napomena važnu točku. Linkovi na različite verzije istog java generičke klase ne može ukazati na jedan te isti objekt. To je, valjda imamo dvije veze: Uparivanje
Ograničenja generičkih klasa
Važno je znati da generalizacije se može primijeniti samo na referentni vrste, koja je proći parametre generičke klase java argument mora biti tipa klase. Ove jednostavne vrste, kao što su, na primjer, dvostruke ili duge, ne mogu se prenositi. Drugim riječima, sljedeći redak par klasa izjava nije dopušteno: Par
Još jedan ozbiljan ograničenje je nemogućnost stvoriti instancu tipa parametra. Na primjer, sljedeći redak će uzrokovati pogrešku kompilacijski: T prvi = new T (). To je očito, jer ne znaš unaprijed da li argument prošao cijeli razred ili apstraktno, ili čak i sučelje. Isto vrijedi i za stvaranje polja.
ograničene vrste
Često postoje situacije kada je potrebno ograničiti popis vrsta koje mogu biti usvojeni kao argument za Java generičke klase. Pretpostavimo da u našem razredu Pair želimo ukratko opisali samo brojčane vrijednosti za daljnje matematičkih operacija na njima. Za to nam je potrebno odrediti gornju granicu vrsti parametra. To se ostvaruje pomoću a superclass oglasa naslijedio sve argumente donesenih u zagrade. To će izgledati kako slijedi: Klasa par
Ovo je zajednički prijem. Takva ograničenja se često koriste za pružanje parametre tipa kompatibilnost u jednoj te istoj klasi. Razmotrimo primjer u našem razredu Pair: Klasa par
Ograničavanje „odozdo” je upravo na isti način, ali umjesto riječi proteže se čarolija super riječ. To je klasificiran klasa par
Generičke metode Java i graditelji
U Java, generalizacije se može primijeniti ne samo na nastavu, ali i metode. Na primjer, generički metoda može biti proglašen u redovnoj nastavi.
Kao što se vidi na gornjoj slici, oglas generalizirana metoda nije velika stvar. Dosta prije nego vrsta metoda povratak staviti zagrada i odrediti parametre tipa u njima.
Ako je sve učinjeno na sličan način kao konstruktora:
Zagrade u ovom slučaju staviti ispred imena projektanta, jer on nema povratnu vrijednost. Rezultat oba programa će biti:
Integer
niz
Similar articles
Trending Now