Mga kompyuter, Programming
Mga Generic Java: Deskripsyon ug Mga Pamaagi
Sukad sa pagsugod niini, ang Java nga pinulongan adunay daghan nga mga pagbag-o, nga sa walay duhaduha, nagdala sa mga positibo nga bahin sa pagpaandar niini. Ang usa ka mahinungdanon nga kausaban mao ang pagpaila sa Java Generic o generalisation. Ang kini nga katuyoan nakapahimo sa pinulongan nga dili lamang mas sayon ug daghag gamit, apan daghan usab nga dili luwas sa termino sa mga datos sa datos.
Ang kamatuoran mao nga sa wala pa ang pagpaila sa mga generics, ang generic nga code sa Java mahimong gimugna, lamang sa mga link sa klase nga Object. Ang maong mga sumpay mahimong itudlo sa bisan unsang butang. Human sa tanan, ang tanan nga mga klase sa Java mga implicit nga mga kaliwat sa klase sa Object. Apan, kini nga pamaagi usa ka potensyal nga tinubdan sa daghang mga tipikal nga kasaypanan sa kahilwasan kung tin-aw mo nga nakumbertir ang usa ka butang gikan sa Object ngadto sa target type. Sa diha nga gigamit ang mga pagkaporma, ang tanan nga mga cast gipahigayon sa bug-os ug awtomatiko, nga wala maglakip bisan sa posibleng posibilidad sa mga kasaypanan.
Mga Generic Java: paghulagway ug panig-ingnan
Atong usisahon ang usa ka yano nga pananglitan sa pag-aplikar sa kalahian sa naandan nga klase sa numero sa ubos. Ug dayon unya kita magpadayon sa usa ka detalyadong pagsusi sa tanan nga mga subtleties ug nuances sa Java Generic.
Matikdi kung giunsa ang gipahayag nga klase sa Pair. Pagkahuman sa ngalan sa klase, ang mga bracket sa anggulo gibuksan, diin gipaila ang letrang T. Kini usa ka matang sa placeholder nga mapulihan sa usa ka piho nga matang sa paghimo sa usa ka pananglitan niini nga klase. Kini ingon niini: Pair
Mubo nga sulat: Sugod sa ika-walo ka bersyon sa Java, nga nagpunting sa target type sa dihang ang link gipahayag, mahimo nimong ibilin ang mga angle brackets sa walay sulod nga tagtukod. Busa ang panig-ingnan sa ibabaw mahimong isulat pag-usab ingon sa mosunod: Pair
Kung ang usa ka klase gipahayag niining paagiha, nan sa niini nga lawas, inay sa mga piho nga matang sa mga natad, mga pakisayran, ug mga pamaagi nga gibalik pinaagi sa mga pamaagi, mahimo nimo gamiton kini nga sulat. Tungod kay ang T gipulihan sa usa ka piho nga matang sa paghimo sa usa ka klase nga butang, ang una ug ikaduha nga mga natad sa niini nga kaso mahimong tipo nga Integer.
Human sa logic, ang mga argumento firstItem ug secondItem, gipasa ngadto sa katugbang nga konstruktor, kinahanglan usab nga tipo sa Integer o sa iyang subclass. Kung mosulay ka sa pagpasa sa usa ka data type nga lahi gikan sa kung unsa ang gitakda sa dihang ang butang gimugna, ang compiler dili molaktaw niini nga sayop. Busa, ang constructor nga may argumento sa paghimo sa butang adunay mosunod nga porma: Pair
Usa ka generic nga klase nga adunay ubay-ubay nga mga parameter
Sa mga generic nga mga klase, mahimo usab nga ipahayag ang ubay-ubay nga mga parameter nga gikutlo nga anaa sa mga angle angle, gibulag sa mga koma. Ang Pair nga klase alang niini nga kaso gipresentar sa numero sa ubos.
Ingon sa imong makita, sa diha nga ang pagmugna sa usa ka pananglitan sa usa ka klase, ang susama nga gidaghanon sa mga matang ingon nga ang mga lagda kinahanglan nga ihulagway sa mga brackets sa anggulo. Kung pamilyar ka sa ingon nga matang sa datos nga datos sama sa Mapa, mahimo nimong mahibal-an nga ang sama nga prinsipyo gigamit didto. Didto, ang unang argumento nagtino sa matang sa yawe, ug ang ikaduha nagtino sa matang sa bili. Kini kinahanglan nga nakita nga ang mga tipo sa mga argumento nga gipasa ngadto sa pagmugna sa butang mahimong managsama. Busa, ang mosunod nga deklarasyon sa usa ka pananglitan sa klase sa Pair hingpit nga sakto: Pair
Pipila ka mga bahin sa mga kalahian
Sa wala pa magpadayon, kinahanglan nga matikdan nga ang Java compiler wala maghimo sa bisan unsang lainlaing mga bersyon sa Pair nga klase. Sa pagkatinuod, sa panahon sa proseso sa pag-compile, ang tanan nga impormasyon mahitungod sa generic nga matang gibalewala. Hinunoa, ang mga katugbang nga mga klase gisulat, nga naghimo sa usa ka espesyal nga bersyon sa Pair nga klase. Bisan pa, ang programa mismo aduna pa'y usa ka heneral nga bersyon niini nga klase. Kini nga proseso gitawag sa Java Generic type paglimpyo.
Atong timan-an ang importante nga punto. Ang mga pag-link sa lainlaing bersyon sa pareho nga klase sa java dili matudlo sa pareho nga butang. Nga mao, makaingon kita nga adunay duha ka mga link: Pair
Mga pagbabag nga gipatuman sa mga heneral nga mga klase
Mahinungdanon nga mahibal-an nga ang mga heneralisasyon mahimo lamang ipatuman sa mga klase sa reperensya, nga mao, ang argumento nga gipasa ngadto sa generic class java argument kinahanglan kinahanglan nga klase sa klase. Ang ingon nga yanong mga tipo sama pananglit, doble o taas, dili mapasa. Sa laing pagkasulti, ang mosunod nga linya sa Pair class deklarasyon dili balido: Pair
Ang laing seryoso nga limitasyon mao ang imposible sa pagmugna og usa ka pananglitan sa usa ka tipik nga tipo. Busa, ang mosunod nga linya magpahinabo sa kasaypanan sa kompilasyon: T una = bag-ong T (). Maathag ini, bangod wala mo mahibal-an sing abanse kon ang isa ka bug-os nga klase ukon isa ka abstract interface ipasa bilang argumento. Ang sama nga gihimo alang sa paghimo arrays.
Limitado nga matang
Kasagaran adunay mga sitwasyon kung kinahanglanon nga limitahan ang lista sa mga klase nga mahimong ipasa isip argumento sa generic nga klase sa java. Atong hunahunaon nga sa atong Pair nga klase gusto natong ipa-encapsulate lamang ang numerical values alang sa dugang nga mga operasyon sa matematika sa kanila. Aron mahimo kini, kinahanglan natong ibutang ang taas nga utlanan sa tipo nga parameter. Kini gipatuman gamit ang superclass nga deklarasyon nga napanunod sa tanang mga argumento nga gipasa sa anggulo nga mga braket. Kini susama niini: Ang klase nga Pair
Kini usa ka komon nga pamaagi. Ang ingon nga mga pagdili sagad gigamit aron maseguro ang pagkasibo sa mga pag-type nga mga parameter sa pareho nga klase. Hunahunaa ang usa ka pananglitan sa among Pair class: class Pair
Ang pagpugong "gikan sa ubos" mahitabo sa susama nga paagi, apan inay ang pulong nagaabot, ang pulong super gisulat. Nga mao, ang deklarasyon sa klase nga Pair
Generic Java Methods ug Constructors
Sa Java ang mga heneralisasyon mahimong magamit dili lamang sa pagtahud sa mga klase, apan usab mga pamaagi. Busa, ang kasagaran nga pamaagi mahimong madeklarar sa naandan nga klase.
Sumala sa imong makita sa hulagway sa ibabaw, walay komplikado sa deklarasyon sa kasagaran nga pamaagi. Kini igo nga ibutang ang mga brackets sa anggulo sa dili pa ang pamaagi sa pagbalik sa klase ug isulti ang tipik nga mga parameter nga anaa kanila.
Sa kaso sa usa ka constructor, ang tanan nahimo sa samang paagi:
Ang mga braket sa anggulo sa niini nga kaso gibutang sa atubangan sa ngalan sa tigtukod, tungod kay wala kini bisan unsang bili. Ang resulta sa trabaho sa duha nga mga programa mao ang:
Integer
String
Similar articles
Trending Now