Kompjuters, Ipprogrammar
Java Generics: deskrizzjoni u metodi
Nibdew bl-dehra tal-lingwa Java għaddiet minn ħafna tibdiliet, li bla dubju miġjuba mumenti pożittivi fil-funzjonalità tagħha. Waħda minn dawn il-bidliet sinifikanti hija l-introduzzjoni ta 'Java ġeneriċi jew ġeneralizzazzjonijiet. Din il-funzjonalità mhux biss tagħmel il-lingwaġġ aktar flessibbli u versatili, iżda wkoll ferm aktar sigur f'termini li jġibu l-tipi ta 'data.
Il-fatt hu li qabel l-introduzzjoni ta 'ġeneriċI kodiċi ġeneriċi Java jistgħu jinħolqu, mhux biss f'termini ta' Għan referenza tip. Tali rabtiet jistgħu jiġu assenjati kwalunkwe oġġett. Wara kollox, il-klassijiet fl Java huma werrieta klassi Għan impliċiti. Madankollu, dan l-approċċ huwa sors potenzjali ta 'ħafna żbalji relatati ma' tipi sigurtà fil-konverżjoni apparenti ta 'oġġett mill-Għan għat-tip mira. Meta jintużaw ġeneralizzazzjonijiet casts kollha huma mwettqa impliċitament u awtomatikament, jeliminaw anki l-potenzjal għal żbalji.
Java Generics: deskrizzjoni u l-eżempju
Ejja nieħdu eżempju sempliċi ta 'l-applikazzjoni ta' ġeneralizzazzjoni għall-klassijiet regolari fil-figura hawn taħt. U mbagħad jipproċedi għal eżami dettaljat ta 'kull l-irqaqat u sfumaturi ta' Java ġeneriċi.
Oqgħod attent għall-mod li bih id-dikjarazzjoni klassi iseħħ Par. Immedjatament wara l-isem klassi, parentesi angolu miftuħ, li indikat l-ittra T. Dan huwa tip ta 'mili, li tinsab fil-proċess tal-ħolqien każ ta' din il-klassi se jiġu sostitwiti minn tip speċifiku. Huwa jistenna kif ġej: Par
Nota: tibda bl-tmien verżjoni tal-Java, li tispeċifika t-tip fil-mira meta tiddikjara parentesi angolu referenza fl-kostruttur jista 'jitħalla vojt. Allura eżempju jistgħu jiġu miktuba mill-ġdid kif hawn fuq: Par
Meta klassi hija dikjarata b'tali mod, imbagħad fil-ġisem tiegħu minflok ta 'tipi speċifiċi ta' oqsma, links, oġġetti mibgħuta lura mill-metodi tista 'tuża din l-ittra. Peress T meta jinħoloq l-oġġett klassi hija sostitwita minn tip partikolari, l-ewwel u t-tieni oqsma f'dan il-każ se jkun ta 'l-Integer tip.
Wara l-loġika tal-argumenti u firstItem secondItem, irrefera għall-kostruttur xierqa għandha tkun ukoll ta 'Integer tip jew subklassi. Jekk int tipprova li jittrasmetti tip ta 'data li huwa differenti minn dak li kien speċifikat meta jinħoloq oġġett, il-kumpilatur mhux se let dan l-iżball. Għalhekk, il argumenti kostruttur meta oġġett se tkun kif ġej: Par
Ġeneralizzat ma 'tipi ta' klassi diversi parametri
Fil-klassijiet ġeneralizzati tista 'wkoll tiddikjara parametri multipli tat-tip li huma stabbiliti fil-parentesi angolu b'virgola. Ġġeddu minn każ klassi Par hija ppreżentata hawn taħt.
Kif tistgħu taraw, meta inti toħloq każ ta 'din il-klassi fil-parentesi angolu għandhom jindikaw l-istess numru ta' tipi bħala parametri. Jekk inti familjari ma 'dan it-tip ta' struttura tad-dejta bħala Mappa, tista 'tara li dan juża eżattament l-istess prinċipju. Hemmhekk, l-ewwel argument tispeċifika t-tip ta 'ċavetta, u t-tieni - it-tip ta' valur. Għandu jiġi nnutat li t-tipi ta trasmessi meta oġġett argumenti jistgħu jikkoinċidu. Per eżempju, l-ad wara Par klassi eżempju huwa assolutament korretta: Par
Xi karatteristiċi ta 'ġeneralizzazzjonijiet
Qabel ma tmur aktar, għandu jiġi osservat li l-kumpilatur Java ma joħloqx verżjonijiet differenti tal-Par klassi. Fil-fatt, fil-proċess tal-kompilazzjoni ta 'tip ġeneralizzata l-informazzjoni kollha hija mħassra. Minflok, inti tressaq it-tipi xierqa, ħolqien ta 'verżjoni speċjali tal-klassi Par. Madankollu, fil-programm għad hemm biss verżjoni ġenerika tal-klassi. Dan il-proċess jissejjaħ fl Java tip tindif ġeneriċi.
Nota punt importanti. Links għal verżjonijiet differenti tal-istess klassi ġeneriku java ma jista 'jiġbed l-istess oġġett. Dan huwa, ejja ngħidu għandna żewġ rabtiet: Par
Restrizzjonijiet fuq klassijiet ġeneriċi
Huwa importanti li tkun taf li ġeneralizzazzjonijiet jistgħu jiġu applikati biss lil tipi referenza, li huwa li jgħaddi parametri argument ġeneriku java klassi għandhom ikunu ta 'tip klassi. Dawn it-tipi sempliċi, bħal, pereżempju, doppji jew twil, ma tistax tiġi trasferita. Fi kliem ieħor, id-dikjarazzjoni linja li ġejja klassi Par mhuwiex permess: Par
Ieħor limitazzjoni serja hija l-inabbiltà li joħolqu każ tat-tip parametru. Per eżempju, il-linja li ġejja se jikkawżaw żball kompilazzjoni: T ewwel = T ġdida (). Dan huwa ovvju, għaliex inti ma taf minn qabel jekk l-argument għadda klassi sħiħa jew astratt, jew saħansitra interface. L-istess jgħodd għall-ħolqien matriċi.
tipi limitati
Spiss hemm sitwazzjonijiet meta huwa meħtieġ li l-lista tat-tipi li jistgħu jiġu mgħoddija bħala argument biex Java klassi ġenerika. Ejja nassumu li fil Par klassi tagħna irridu li jirrappreżentaw biss il-valuri numeriċi għal aktar operazzjonijiet matematiċi fuqhom. Biex tagħmel dan għandna bżonn li jiddefinixxu l-limitu ta 'fuq tat-tip parametru. Huwa realizzati permezz ta 'ads Sopraklassi wiret l-argumenti kollha li għaddew bi parentesi angolu. Hija se teżamina kif ġej: Klassi Par
Din hija akkoljenza komuni. Dawn ir-restrizzjonijiet huma ħafna drabi jintużaw biex jipprovdu parametri tip kompatibilità f'wieħed u l-istess klassi. Ikkunsidra l-eżempju fil-klassi Par tagħna: klassi Par
Limitazzjoni tal-"qiegħ" huwa eżattament l-istess mod, iżda minflok il-kelma testendi għall jespliċitaw il super kelma. Dik il-klassi hija kklassifikata Par
Metodi Java ġeneriċi u l-kostrutturi
Fl Java, ġeneralizzazzjonijiet jistgħu jiġu applikati mhux biss għall-klassijiet, iżda wkoll metodi. Per eżempju, metodu ġeneriku jista 'jiġi ddikjarat fil-klassi regolari.
Kif jidher fil-figura ta 'hawn fuq, il-metodu ad ġeneralizzata huwa no big deal. Biżżejjed qabel it-tip ritorn ta 'metodu li jpoġġi l-parentesi angolu u tispeċifika l-parametri tat-tip fihom.
Jekk kollox isir b'mod simili għall-kostruttur:
parentesi angolu f'dan il-każ tressaq quddiem l-isem tad-disinjatur, minħabba dan ma jkollu ebda valur tar-ritorn. Ir-riżultat taż-żewġ programmi se jkunu:
integer
string
Similar articles
Trending Now