MakombiyutaZvirongwa

Java Generics: tsananguro uye nzira

Kutanga pakuonekwa mutauro Java kwave kuchiita yakawanda kuchinja, izvo pasina mubvunzo vakauya zvakanaka nguva wayo functionality. Rimwe kuchinja izvi ndizvo pakatanga Java Generic kana kungotaura. functionality ichi kwete chete kuti mutauro zvikuru kuchinja uye ichiita mabasa akawanda, asiwo nani zvikuru tichitarisa zvokuparadza date mhando.

Chokwadi ndechokuti asati okusuma generics muna Java Generic Mubumbiro aigona vasikwa, kwete chete maererano mhando duramazwi Vanoramba. Links kwakadaro kunogona kupiwa chero chinhu. Mushure zvose, makirasi muna Java vari zvizere venhaka Vanoramba kirasi. Zvisinei, nzira iyi vanokwanisa tsime zvikanganiso zvakawanda ukama kuchengeteka mhando iri pachena kutendeuka chinhu kubva Vanoramba kubaya mhando. Kana kushandisa kunanga anowisira zvose anoteererwa zvakakwana uye choga, kubvisa kunyange mukana zvikanganiso.

Java Generics: tsananguro uye muenzaniso

Ngatikurukurei muenzaniso kushandiswa zvavo kune dzose makirasi ari mufananidzo pazasi nyore. Zvino mberi kuti uwane kuongorora zvose subtleties uye nuances ose Java Generic.

Nyatsoteerera panzira iyo boka chinoziviswa kunoitika Pair. Pakarepo shure kirasi zita, rakavhurika angled mumabhuraketi, izvo zvairatidza tsamba T. It rudzi filler, riri mubishi rakasikwa nezveapo mukirasi iyi kuchatsiviwa imwe mhando. Zvinoita sezvinotevera: Pair obj = Pair itsva (). Zvinofanira kucherechedzwa kuti pane T anogona tsanangurai chero tsamba, asi, sezvo murume mutemo, shandisa T, V kana E.

Cherechedza: kutanga worusere shanduro Java, chaiyo kubaya mhando kana kuzivisa bhuku angled mumabhuraketi ari constructor kunogona kusiya chinhu. Saka muenzaniso inogona rewritten sezvo kumusoro: Pair obj = Pair idzva <> ().

Kana kirasi haanzi nenzira yakadaro, zvino muviri wake pane mhando zvakananga muminda, anobatanidza, zvinhu kudzoka nzira unogona kushandisa tsamba kuti. Sezvo T paaisika kirasi chinhu kuchatsiviwa imwe mhando, vekutanga nevechipiri minda iyi ichava pamusoro mhando Integer.

Zvichitevera pfungwa mibvunzo uye firstItem secondItem, akataura yakakodzera constructor inofanirawo kuva mhando Integer kana subclass. Kana iwe kuedza wokushandura munhu date mhando kuti rakasiyana zvakanga wainyatsotaura paaisika chinhu, asi compiler handingakuregi chikanganiso ichi. Saka, mibvunzo constructor kana chinhu achava sezvinotevera: Pair obj = Pair idzva <> (Integer itsva (1), Integer itsva (2)). Izvi zvinoshandawo kune kukakavara uye nzira setFirst setSecond. Uye sezvo waita pamwe wafungidzira, nzira getFirst getSecond uye achadzoka ane ukoshi mhando Integer.

Generalized wandei parameters kirasi mhando

In generalized maclass anogona kuzivisa akawanda parameters pamusoro mhando zviri panzvimbo angled mumabhuraketi vane koma. Pakanatsiridzwa ne nyaya Pair kirasi kukurukurwa pazasi.

Sezvaunogona kuona, kana iwe pave chiitiko mukirasi iyi angled mumabhuraketi vanofanira kuratidza chete nhamba pakubhadhara sezvo parameters. Kana unoziva kwakadai date sechivako sechinhu Map, unogona kuona kuti anoshandisa anawo musimboti. Ikoko, wokutanga nharo kutaura mhando kiyi, uye wechipiri - mhando ukoshi. Zvinofanira kucherechedzwa kuti mhando zvitange kana chinhu chimwe nenharo anogona bindepinde. Somuenzaniso, zvinotevera AD Pair boka Somuenzaniso Zvemazvirokwazvo ichokwadi: Pair obj.

Zvimwe zviri kunanga

Tisati taenda kure, zvinofanira kucherechedzwa kuti Java compiler asingadi kusika shanduro dzakasiyana-siyana boka Pair. Kutaura zvazviri, mune muitiro rokunyora munhu generalized mhando dzose mashoko dzadzimwa. Asi, imi kuuyisa mhando zvakakodzera, kutanga chaiyo shanduro Pair mukirasi. Zvisinei, mune purogiramu kuchine chete Generic shanduro kirasi. Izvi chinonzii Java Generic rokuchenesa mhando.

Ona pfungwa inokosha. Links kune shanduro dzakasiyana-siyana zvakafanana Java Generic kirasi haagoni kunongedzera mumwe chete chinhu. Kuti, ngatiti tine Links maviri: Pair obj1 uye Pair obj2. Somugumisiro, mumutsetse obj1 = obj2 kukanganisa. Kunyange zvazvo vose variables vari mhando Pair , zvinhu kwavakanga kureva, akasiyana. Izvi inonyatsoratidza pakati mhando wakachengeteka Java Generic.

Kurambidzwa Generic makirasi

Zvakakosha kuziva kuti kungotaura ingashandiswa chete bhuku nezvemarudzi, ndiko zvakaitika parameters Generic kirasi Java nharo vanofanira kuva kirasi mhando. Mhando idzi nyore, akadai, semuenzaniso, kaviri kana refu, haagoni Kutamiswa. Nemamwe mashoko, mutsetse inotevera Pair boka chinoziviswa haabvumirwi: Pair obj. Zvisinei, kukamurwa uku haisi dambudziko chakakomba, sezvo pane runoenzanirana Java wrapper kirasi nomumwe chinyakare mhando. Kutaura zvazviri, kana boka Pair uchida encapsulate imwe integer uye Boolean ukoshi avtoupakovka anoita zvose kwamuri: Pair obj = Pair idzva <> (25, zvechokwadi).

Chimwe kukamurwa kunokosha nekusagona pave inoonekwa parameter mhando. Somuenzaniso, zvinotevera mutsetse achaita muunganidzwa kukanganisa: T kutanga = T itsva (). Izvi pachena, nekuti hamuzivi pachine kana nharo vakapfuura imwe kirasi yakazara kana husingaoneki, kana kunyange inowanikwa. The chete inoenda kusika arrays.

shoma marudzi

Kazhinji pane mamiriro ezvinhu kana zvakakodzera kuti tizvidzore pamazita pakubhadhara kuti zvingaonekwa akapfuura sezvo nharo kuti Java kirasi Generic. Ngationei vanofungidzira kuti yedu kirasi Pair tinoda encapsulate chete kusanganiswa tsika mamwe kwemasvomhu mashandiro pamusoro pavo. Kuti aite izvi tinofanira kutsanangura rokumusoro panogumira parameter mhando. Zvinonzi akaziva achishandisa superclass achigadzira nhaka zvose zvaitaurwa akapfuura angled mumabhuraketi. Zvichaita kutarira sezvinotevera: kirasi Pair . Saizvozvo, kuti compiler anowana kuti panzvimbo parameter T inogona kubviswa kuchiiswa kana Number mukirasi kana mumwe subclasses ayo.

Izvi zvinowanzoitika womuchato. mitemo yakadaro anowanzoshandiswa kupa kugarisana mhando parameters imwe chete kirasi. Funga muenzaniso wedu mukirasi Pair: kirasi Pair . Pano tiri kuudza compiler kuti mhando T kunogona zvemasanga, uye V mhando vanofanira kunge T mhando kana mumwe subclasses ayo.

Kuderedza "pasi" chaizvo saizvozvo, asi pachinzvimbo shoko kunosvika kuperetera shoko nakisa. Izvozvo Classified kirasi Pair inoti kuti panzvimbo T anogona kubviswa kuchiiswa kana ArrayList, kana kirasi chero kana inowanikwa kuti nhaka.

Generic Java nzira uye Makontakta

In Java, kungotaura ingashandiswa kwete chete kune makirasi, asi nzira. Somuenzaniso, imwe nzira Generic inogona riziviswe munyika dzose mukirasi.

Sezvinoonekwa mune nhamba kumusoro, AD generalized nzira haisi hombe. Enough pamberi kudzoka mhando imwe nzira kuisa angled mumabhuraketi uye kutaridzwa mhando parameters mavari.

Kana zvose zvinoitwa zvakafanana kuti constructor:

Angle mumabhuraketi mune iyi pamberi zita mugadziri, nekuti haana kudzoka ukoshi. Mugumisiro zvirongwa zvose zvichava:

Integer

tambo

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 sn.delachieve.com. Theme powered by WordPress.