Datori, Programmēšana
Java Generics: apraksts un metodes
Sākot ar izskatu Java valodas ir notikušas daudzas izmaiņas, kas neapšaubāmi cēla pozitīvus momentus tās funkcionalitāti. Viena no šīm būtiskajām pārmaiņām ir ieviest Java Generic vai vispārinājumiem. Šī funkcija ir ne tikai padarīt valoda elastīgāku un universāls, bet arī daudz drošāka ziņā celt datu tipus.
Fakts ir tāds, ka pirms ieviešanas ģenērisko zāļu Java ģenērisko kodu varētu tikt radīta, ne tikai attiecībā uz tipa atskaites objektu. Šādas saites var piešķirt jebkuru objektu. Galu galā, klases Java ir netieši Objektu klases mantiniekiem. Tomēr šī pieeja ir potenciāls avots daudzu kļūdu, kas saistīti ar drošības veidiem šķietamā pārveidošanu objekta no objekta līdz mērķa veidu. Lietojot vispārinājumus visi pārsēji tiek veikti netieši un automātiski, novēršot pat potenciālu kļūdas.
Java Generics: apraksts un piemērs
Apskatīsim vienkāršu piemēru piemērošanas vispārinājums uz regulāru nodarbību zemāk attēlā. Un tad doties uz detalizētu pārbaudi visus smalkumus un nianses Java Generic.
Pievērsiet uzmanību tam, kā, kādā klasē deklarācija notiek pārī. Tūlīt pēc tam, kad klases nosaukums, atvērt leņķiekavu, kas norādīti burtu T. Tā ir sava veida pildījumu, kas ir procesā veidojot instance šajā klasē tiks aizstāts ar noteikta veida. Tas izskatās šādi: pāris
Piezīme: sākot ar astoto versiju Java, norādot mērķa veidu, deklarējot atsauce leņķiekavas konstruktorā var atstāt tukšu. Tātad, piemēram, var pārrakstīt kā iepriekš: Pair
Ja klase tiek atzīts tādā veidā, tad viņa ķermeni, nevis īpaša veida jomās, saites, objektu atgriež metodes varat izmantot šo vēstuli. Kopš T veidojot klases objekts aizstāj ar konkrēta veida, pirmais un otrais lauki šajā gadījumā būs no tipa skaitlim.
Pēc loģikas argumentiem un firstItem secondItem, kas minētas atbilstošajā konstruktors arī jābūt tipa Integer vai apakšklases. Ja jūs mēģināt, lai pārraidītu datu tipu, kas ir atšķirīgs no tā, ko bija norādīts, veidojot objektu, tad kompilators neļaus šo kļūdu. Tādējādi argumenti konstruktors, kad objekts būs šādi: Pair
Vispārējo ar vairākiem parametriem klases tipiem
In ģeneralizētu klasēs var arī paziņot vairākus parametrus tāda veida, ka tiek noteikts Leņķiekavās ar komatu. Pārveidotas ar lietu Pāru klase tiek uzrādīts zemāk.
Kā jūs varat redzēt, kad jūs izveidojat instancē šajā klasē slīpajās iekavās jānorāda tikpat daudz veidu, kā parametru. Ja Jūs esat iepazinušies ar šāda veida datu struktūras kā karte, jūs varat redzēt, ka tā izmanto tieši to pašu principu. Tur, pirmais arguments norāda uz atslēgu veidu un otrais - uz vērtību veidu. Jāatzīmē, ka nosūtīti veidi, kad objekts argumenti var pārklāties. Piemēram, šāda reklāma Pāru klase instance ir pilnīgi pareizs: pāris
Dažas iezīmes vispārinājumiem
Pirms došanās tālāk, jāatzīmē, ka Java kompilators nerada dažādas versijas klases Pair. Faktiski, šajā procesā apkopot vispārinātā veidā visa informācija tiek dzēsta. Tā vietā, jums dot piemērotus veidus, izveidojot īpašu versiju Pair klasē. Tomēr programmā ir vēl tikai vispārējs versija klasē. Šo procesu sauc par Java Generic tīrīšanas veidu.
Piezīme svarīgu punktu. Saites uz dažādām versijām paša java vispārēju klasē nevar norādīt uz vienu un to pašu objektu. Tas ir, pieņemsim, ka mums ir divas saites: Pair
Ierobežojumi generic klasēm
Ir svarīgi zināt, ka vispārinājumi var piemērot tikai, lai norādītu veidu, kas ir nodot parametrus vispārīgu klases java argumentu jābūt klases tipa. Šīs vienkāršās veidi, piemēram,, piemēram, dubultā vai garš, nevar tikt nodota. Citiem vārdiem sakot, šādu rindu pārī klases deklarācija nav atļauts: pāris
Vēl viens nopietns ierobežojums ir nespēja izveidot instanci parametru tipu. Piemēram, šādu rindu izraisīs kompilēšanas kļūda: T pirmais = jauns T (). Tas ir skaidrs, jo jūs nezināt jau iepriekš, vai arguments izturējis pilnu klasi vai abstrakts, vai pat interfeisu. Tas pats, lai izveidotu bloki.
ierobežoti veidi
Diezgan bieži ir situācijas, kad tas ir nepieciešams ierobežot veidu sarakstu, kas var tikt nodots kā arguments, lai java vispārēju klasē. Pieņemsim, ka mūsu klases Pair vēlamies ielenkt tikai skaitliskās vērtības turpmākām matemātiskas darbības uz tiem. Lai to izdarītu, mums ir nepieciešams, lai noteiktu maksimālo robežu parametru tipu. Tas tiek īstenots, izmantojot ar superclass reklāmu mantoja visus argumentus pagājis slīpajās iekavās. Tas izskatās šādi: class pāris
Tā ir izplatīta uzņemšanas. Šādi ierobežojumi bieži izmanto, lai nodrošinātu savietojamību tipa parametrus vienā un tajā pašā klasē. Aplūkosim piemēru mūsu klasē Pair: klase pāris
"no apakšas", ierobežošana ir tieši tāpat, bet tā vietā par vārda paplašina izskaidrot vārdu super. Tas ir klasificēta klasē pāris
Generic Java metodes un konstruktori
Java, vispārinājumi var piemērot ne tikai uz nodarbībām, bet arī metodes. Piemēram, vispārējs metodi var deklarēta regulāri klasē.
Kā redzams augstāk attēlā, reklāma vispārēja metode nav liels darījumu. Enough pirms atgriešanās tips metodi likt leņķiekavu un jānorāda tipa parametrus tiem.
Ja viss tiek darīts, līdzīgi konstruktors:
Leņķiekavas šajā gadījumā likt pirms nosaukuma dizainers, jo viņš nav atgriešanās vērtību. Abu programmu rezultāts būs:
vesels skaitlis
rinda
Similar articles
Trending Now