Kompjûters, Programming
Java generic: beskriuwing en metoades
Begjinnend mei it uterlik fan de Java taal hat ûndergien in soad feroarings, dy't grif brocht positive mominten yn syn funksjonaliteit. Ien fan dizze wichtige feroarings is de ynfiering fan Java Generic of generalisaasjes. Dizze funksjonaliteit net allinne om de taal mear fleksibele en alsidich, mar ek folle feiliger op it mêd fan oantekene gegevens typen.
It feit is dat foarôfgeande oan de yntroduksje fan generics yn Java generic koade koe oanmakke wurde, net allinnich yn termen fan it type referinsje Object. Soksoarte keppelings kinne tawiisd elts foarwerp. Ommers, klassen yn Java binne ymplisite Objekt klasse erfgenamten. Lykwols, dizze oanpak is in mooglike boarne fan in soad flaters yn ferbân mei feiligens typen yn 'e skyn bekearing fan in foarwerp út it objekt nei it doelwyt type. By it brûken fan generalisaasjes alle smyt wurde útfierd ymplisyt en automatysk, opheffing fan sels de mooglikheden foar flaters.
Java generic: beskriuwing en foarbyld
Nim no in ienfâldige foarbyld fan it tapassen fan feralgemienjen ta reguliere klassen yn de figuer hjirûnder. En dan fierder nei in detaillearre ûndersyk fan alle subtile en nuânses fan Java Generic.
Omtinken jaan oan de wize wêrop de klasse oanjefte optreedt Pair. Fuort nei de klasse namme, iepen hoeke heakjes, dy't oanjûn hat it letter T. It is in soarte fan vulstof, dy't yn it proses fan it ta stân in eksimplaar fan dizze klasse wurdt ferfongen troch in spesifyk type. It sjocht der as folget: Pair
Tink derom: begjinnend mei it achtste ferzje fan de Java, mei opjefte fan it doelwyt type doe't ferklearje referinsjepunt hoeke heakjes yn 'e constructor kin ledich litten wurde. Sa bygelyks kin wurde nij skreaun as hjirboppe: Pair
As in klasse wurdt ferklearre op sa'n wize, doe yn syn lichem ynstee fan spesifike soarten fjilden, keppelings, objekten werom troch de metoaden kinne jo brûk meitsje fan dy brief. Sûnt T by it meitsjen fan de klasse foarwerp wurdt ferfongen troch in bepaalde soarte, earste en twadde fjilden yn dit gefal sil wêze fan it type Integer.
Nei oanlieding fan de logika fan 'e arguminten en firstItem secondItem, ferwiisde nei it passend constructor moat ek wêze fan it type Integer of Subclass. As jo besykje te zenden een gegevens type, dat is wat oars út wat waard oantsjutte as it meitsjen fan in foarwerp, de gearstaller sil net litte dit fersin. Sa, de arguminten constructor doe't in foarwerp sil wêze as folget: Pair
Generalisearre mei ferskate parameters klasse soarten
Yn Generalisearre klassen kin ek ferklearje meardere parameters fan it type dy't ynsteld yn hoek heakjes mei in komma. Nij ynrjochte troch in saak Pair klasse wurdt presintearre hjirûnder.
Sa't jo sjen kinne, as jo meitsje in eksimplaar fan dizze klasse yn hoek heakjes moatte oanjaan itselde tal typen as parameter opjûn binne. As jo binne bekend mei dit soarte fan gegevens struktuer as Map, kinne jo sjen dat it brûkt krekt itselde prinsipe. Dêr, de earste argumint spesifisearret it type fan 'e kaai, en it twadde - it type fan de wearde. Dêrby moat opmurken wurde dat de soarten oerdraachbere doe't in foarwerp arguminten kinne oerlaapje. Bygelyks, de neikommende ad Pair klasse eksimplaar is perfoarst korrekt: Pair
Guon funksjes fan generalisaasjes
Foardat gean fierder, dan moat sein wurde dat de Java gearstaller hat net oanmakke ferskillende ferzjes fan 'e klasse Pair. Yn feite, yn it proses fan it gearstallen fan in generalisearre type alle ynformaasje is wiske. Ynstee, jimme bringe de passend typen, it meitsjen fan in bysûndere ferzje fan de Pair klasse. Lykwols, yn it programma is der noch mar in generike ferzje fan 'e klasse. Dat proses hjit yn Java Generic cleaning type.
Opmerking in wichtich punt. Keppelings mei ferskate ferzjes fan deselde java generike klasse kin net ferwize nei ien en deselde foarwerp. Dat is, stel wy hawwe twa keppelings: Pair
Beheining op generic klassen
It is wichtich om te witten dat der generalisaasjes kinne tapast wurde allinne te Ingelân ferwize nei typen, dat is it barre parameters generyk klasse java argumint moat wêze in klasse type. Dy ienfâldige typen, lykas, bgl, dûbele of lang, kin net oerdroegen. Mei oare wurden, it neikommende line Pair klasse ferklearring is net tastien: Pair
In oare serieuze beheining is it ûnfermogen te meitsjen in eksimplaar fan de parameter type. Bygelyks, de neikommende line sil feroarsaakje in kompilaasje flater: T earst = nij T (). Dat leit foar de hân, omdat jo net fan tefoaren witte oft in argumint passed in folsleine klasse of abstrakt, of sels ynterface. Itselde jildt foar it meitsjen fan rigen.
beheinde types
Hiel faak der binne situaasjes as is it nedich te beheinen de list fan typen dy kin wurde trochjûn as argumint om te java generyk klasse. Lit ús der fan út dat der yn ús klasse Pair wy wolle encapsulate allinne it numerike wearden foar fierder wiskundige operaasjes oan har. Te dwaan dat wy moatte beskiede hokker boppeste limyt fan de parameter type. It wurdt realisearre troch middel fan in superclass advertinsjes erfde alle arguminten yn hoeke heakjes. It sil sjen as folget: klasse Pair
Dat is in mienskiplik resepsje. Sokke beheiningen wurde faak brûkt om te foarsjen komptabiliteit type parameters yn ien en deselde klasse. Tink oan it foarbyld yn ús klasse Pair: klasse Pair
Beheining fan it "boaiem" is krekt deselde wize, mar ynstee fan it wurd wreidet te staverjen it wurd super. Dat wurdt yndield klasse Pair
Generic Java metoaden en konstrukteurstitel
Yn Java, generalisaasjes kinne tapast wurde net allinnich oan 'e klassen, mar ek metoaden. Bygelyks, in generike metoade kin ferklearre wurde yn in gewoane klaslokaal.
Lykas yn de figuer boppe, de advertinsje generalisearre metoade is gjin grut deal. Genôch foar de return type fan in metoade om de hoek heakjes en oantsjutte it type parameters yn harren.
As alles wurdt dien allyksa ta de constructor:
Hoek heakjes yn dit gefal set foar de namme fan de ûntwerper, want hy hat gjin werom wearde. It resultaat fan beide programma 's sille wêze:
integer
string
Similar articles
Trending Now