ComputerenProgramméiere

Java Generics: Beschreiwung a Methoden

Ugefaange mam Optrëtt vun der Java Sprooch huet vill Ännerungen, wat sech sécherlech positiv Momenter a senger Funktionalitéit matbruecht. Eent vun dëse groussen Ännerungen ass d'Aféierung vun Java Allgemeng oder forméiert ass. Dëst Funktionalitéit net nëmmen maachen d'Sprooch méi flexibel a villsäiteger, mä och vill méi sécher wat vun der Daten Zorte bruecht.

D'Tatsaach ass, dass virun der Aféierung vun generics an Java Allgemeng Code geschaf ginn hätt, net nëmmen am Beräich vun Typ Referenz Zweck. Esou Linken kann all Objet zougewisen ginn. No all, sinn am Java Klassen impliziten Zweck Klass Ierwen. Allerdéngs ass dës Approche eng potentiell Quell vu ville Feeler ze Sécherheet Zorte am visuell Konversioun vun engem Objet aus den Objet an d'Zil Typ dinn. Wann forméiert ass all würfelt benotzt ginn implizit an automatesch gesuergt, fir Feeler och d'Potential eliminéiert.

Java Generics: Beschreiwung an Beispill

Loosst eis engem einfachen Beispill vun der Applikatioun vun generalization zu regelméisseg Klassen an der Figur ënnen betruecht. An dann op eng detailléiert Analyse vun all subtleties an Nuancen vun Java Allgemeng virgoen.

Oppassen op de Wee an déi Klass Deklaratioun Pair existeiert. Direkt no der Klass Numm, oppen Wénkel Klammeren, déi de Bréif T. uginn Et ass eng Zort Absacker, déi vun deems en Beispill vun dëser Klass am Prozess ass gëtt vun engem bestëmmten Typ ersat ginn. Et gesäit wéi follegt: Pair obj = nei Pair (). Et soll feststellen, datt amplaz vun T all Bréif uginn kann, mee, als Regel, benotzen T, V oder E.

Opgepasst: ugefaange mat der aachten Versioun vun der Java, d'Zil- Typ Precisioun wann Wénkel Referenz hirt Klammeren am constructor eidel ginn lénks kënnen. Sou zum Beispill Single kann wéi uewen: Pair obj = nei Pair <> ().

Wann eng Klass ass an esou enger Manéier deklaréiert, dann a sengem Kierper amplaz spezifesch Zorte vu Felder, Linken, déi Methoden zréck Objete Dir dass Bréif benotze kann. Zanter T wann schafen der Klass Objet vun engem bestëmmten Typ, éischten an zweete Felder an dësem Fall ginn vum Typ ganz ageholl ass.

No der Logik vun den Argumenter an firstItem secondItem, Éieren de passenden constructor och vun Typ ganz oder Ënnerklass ginn muss. Wann Dir Versuch eng Daten Typ ze weiderginn, datt aus verschiddene ass wat uginn huet, wann en Objet ze schafen, wäert de Compiler net dat virbildlechen Ugrëff loossen. Also, wann d'Argumenter constructor en Objet wéi follegt ginn: Pair obj = nei Pair <> (neien ganz (1), neien ganz (2)). Déi selwecht zielt fir d'Argumenter a Methoden setFirst setSecond. A wéi Dir hu wahrscheinlech Kandidat, Methoden getFirst getSecond a gëtt e Wäert vun Typ ganz zréck.

Generaliséiert mat Zorte puer Parameteren Klass

An generaliséiert Klassen kann och MÉI Parameteren vum Typ erklären dass am Wénkel Klammeren mat engem verbrauchen Formatioun sinn. Layout vun engem Fall Pair Klass ass ënnert presentéiert.

Wéi Dir gesitt, wann Dir en Beispill vun dëser Klass am Wénkel Klammeren schafen sollen déi selwecht Zuel vun Zorte wéi Parameteren uginn. Wann Dir mat dësem Typ vun Daten Struktur wéi enger Kaart Gewunnecht ginn, kënnt Dir kucken, dass et genau déi selwecht Prinzip benotzt. Do, ginn déi éischt Argument der Zort Schlëssel, an der zweeter - den Typ vun Wäert. Et soll feststellen, datt d'Zorte vu iwwerdroen wann en Objet Argumenter iwwerlageren kann. Zum Beispill, ass folgend ad Pair Klass Beispill absolut korrekt: Pair obj.

Verschidde Funktiounen vun forméiert

Ier weider lass, soll et bemierkt ginn, datt d'Java Compiler net verschidde Versiounen vun der Klass Pair heescht schafen. An Tatsaach, am Prozess e generaliséiert Typ all d'Informatiounen vun beroden ass geläscht. Amplaz, bréngt Iech de passenden Zorte, eng speziell Versioun vun der Pair Klass schafen. Mä am Programm do ass nach just eng Allgemeng Versioun vun der Klass. Dëse Prozess ass an Java Allgemeng Botzen Typ genannt.

Note e wichtege Punkt. Linken op verschidde Versiounen vun der selwechter nei Adress Allgemeng Klass kann net fir eng an déi selwecht Objet Punkt. Dat ass, unhuelen, mir hunn zwee Linken: Pair obj1 an Pair obj2. Doduercher, an Linn obj1 = obj2 en Fehler. Obwuel souwuel Verännerlechen vum Typ Pair sinn, fir d'Objeten déi se kuckt, sinn ënnerschiddlech. Dëst ass e Premier Beispill vun der Zorte vu Sécherheet am Java Allgemeng.

Restriktiounen op Allgemeng Klassen

Et ass wichteg ze wëssen, datt forméiert ass just applizéiert gin kann Zorte ze referenzéieren, dh Parameteren Allgemeng Klass nei Adress Argument ze Ugrëff muss enger Klass Typ gin. Dës einfach Zorte, wéi, e.g., duebel oder laang, kann net iwwerdroe ginn. An anere Wierder, ass folgend Linn Pair Klass Deklaratioun net erlaabt: Pair obj. Allerdéngs ass dat begrenzten Dauer net e grave Problem, well do eng entspriechend Java wrapper Klass fir all Ongewéinlech Typ ass. Streng Allgemengen, wann der Klass Pair wëllt Dir eng ganz an Boolschen Wäert avtoupakovka zu Eegenschaften heescht alles fir Iech: Pair obj = nei Pair <> (25, richteg).

Anere schlëmmen begrenzten Dauer ass d'Onméiglechkeet en Beispill vun der Parameter Typ ze schafen. Zum Beispill gëtt de folgende Linn engem Resultat Feeler féieren: T éischt = nei T (). Dat ass kloer, well Dir am Viraus net wëssen ob en Argument engem voll Klass oder mythologesch huet, oder och Interface. Déi selwecht zielt och fir flamenden Ofgrond schafen.

limitéiert Zorte

Ganz oft ginn et Situatiounen, wou et néideg der Lëscht vun Zorte ze limitéieren, datt als Argument den kann Allgemeng Klass ze nei Adress. Loosst eis dovun ausgoen, datt an eiser Klass Pair mir nëmmen de z'identifizéieren Wäerter fir weider mathematesch Operatiounen op hinnen ze Eegenschaften wëllen. Maachen dat brauchen mir déi iewescht Limite vun der Parameter Typ ze definéieren. Et ass mat Hëllef vun engem superclass Annoncen ierflecher all d'Argumenter den am Wénkel Klammeren realiséiert. Et wäert kucken wéi follegt: Klass Pair . An dësem Manéier, fënnt de Compiler datt amplaz vun der Parameter T Aen kann oder Zuel Klass oder ee vu sengem subclasses.

Dëst ass eng gemeinsam empfaangen. Esou Restriktiounen sinn oft fir Onbedenklechkeet Typ Parameteren an eent an der selwechter Klass benotzt. Betruecht der Beispill an eiser Klass Pair: Klass Pair . Hei soen mir de Compiler datt d'Typ T arbiträr kann, an V Typ muss entweder T Typ oder ee vu sengem subclasses ginn.

der "ënnen" limitéieren ass genee déi selwecht Aart a Weis, mä amplaz vum Wuert Preventioun Wuert super ze iwerstoen. Dat ass kleng Klass Pair seet, datt amplaz vun T oder eng ArrayList Aen kann, oder all Klass oder Interface datt et ierft.

Allgemeng Java Methoden an constructors

An Java, kann forméiert ass fir d'Klassen net nëmmen applizéiert ginn, mä och Methoden. Zum Beispill, kann e Allgemeng Method an engem regelméissegen Klassesall deklaréiert ginn.

Wéi uewen an der Figur gesinn, ass de ad generaliséiert Method keng grouss Laascht. Genuch virum Retour Typ vun enger Method de Wénkel Klammeren Virsprong an der Zort Parameteren an hinnen uginn.

Wann alles ass den Zerfall an d'constructor gemaach:

Wénkel Klammeren an dësem Fall virun den Numm vun der Designer Mëtt duerchgesat huet, well hien huet kee Wäert zréck. D'Resultat vu béide Programmer ginn:

ganz

String

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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