Java Generics Tutorial – mik Generics, hogyan kell használni őket?

A Java Generics a Java nyelv egyik legfontosabb jellemzője. Az ötlet mögött Generikus meglehetősen egyszerű, azonban néha jön ki, mint bonyolult, mert a váltás a szokásos szintaxis társított vele.

ennek az oktatóanyagnak az a célja, hogy könnyen érthető módon bemutassa Önt a generikumok hasznos fogalmának.

de mielőtt magát a generikusokat merítené, derítsük ki, miért volt szükség elsősorban a Java generikumokra.,

a Célra a Java Generics

bevezetése Előtt a generikus Java 5, írhatnál majd összeállít egy kódrészletet, így anélkül, hogy dobott egy hiba vagy figyelmeztetés:

hozzáadhatod értékek bármilyen típusú lista, vagy egy másik Java Gyűjtemény, anélkül, hogy állapítsa meg, milyen típusú adatokat tárolja. De ha értékeket szeretne letölteni a listából, akkor kifejezetten egy bizonyos típusra kell öntenie.

fontolja meg a fenti lista ismétlését.,

egy lista létrehozásának engedélyezése anélkül, hogy először kijelentenénk a tárolt adattípust, mint mi, azt eredményezheti, hogy a programozók hibákat követnek el, mint például a fenti dob ClassCastExceptions a futási idő alatt.

generikus gyógyszereket vezettek be, hogy megakadályozzák a programozók ilyen hibákat.

a generics használatával kifejezetten deklarálhatja azt az adattípust, amelyet a Java gyűjtemény létrehozásakor tárolni fog, amint azt a következő példa mutatja.,

Megjegyzés: A tárolt adattípus megadása nélkül is létrehozhat Java gyűjteményobjektumot, de ez nem ajánlott.

most egy egész számot nem lehet tévesen tárolni egy karakterlánc típuslistában fordítási hiba nélkül. Ez biztosítja, hogy a program nem futási hibákba.

a generikumok Java-ba történő bevezetésének fő célja az volt, hogy elkerülje a ClassCastExceptions futási idő alatt történő futást.

Java Generics

generics segítségével Java osztályokat és módszereket hozhat létre., Nézzük meg az egyes típusú generikumok létrehozásának példáit.

generikus osztály

generikus osztály létrehozásakor az osztály típusparaméterét az osztálynév végén adjuk hozzá a <> zárójelben.

itt, T az adattípus paraméter. T, Nés E A Java konvenciók szerinti adattípusparaméterekhez használt betűk.,

a fenti példában megadhat egy adott adattípust a GenericClass objektum létrehozásakor.

Generikus osztályobjektum létrehozásakor nem adhat át primitív adattípust az adattípus paraméternek. Csak olyan adattípusok adhatók át típusparaméterként, amelyek kiterjesztik az objektumtípust.

például:

Generikus módszerek

Generikus módszerek létrehozása hasonló mintát követ a generikus osztályok létrehozásához. Akkor végre egy általános módszer belsejében egy általános osztály, valamint egy nem Általános egy.,

itt egy adott típusú tömböt adhat át a módszer paraméterezéséhez. A generikus metódus PrintItems() végigmegy az átadott tömbön, és kiírja a tárolt elemeket, mint egy normál Java metódus.

határolt Típusparaméterek

eddig az általunk létrehozott Generikus osztályok és módszerek paraméterezhetők bármilyen, a primitív típusoktól eltérő adattípusra. De mi van, ha korlátozni akarjuk azokat az adattípusokat, amelyeket át lehet adni a generikus gyógyszereknek? Itt jönnek be a korlátozott típusú paraméterek.,

a generikus osztály vagy módszer által elfogadott adattípusokat összekapcsolhatja azzal, hogy meghatározza, hogy egy másik adattípus Alosztályának kell lennie.

például:

itt a UpperBoundedClass és UpperBoundedMethod csak a List adattípus altípusaival paraméterezhető.

List az adattípus a típusparaméter felső határaként működik. Ha olyan adattípust próbál használni, amely nem a List altípusa, akkor fordítási hibát fog dobni.

a határok nem korlátozódnak csak osztályok., Akkor át interfészek is. Az interfész kiterjesztése ebben az esetben az interfész megvalósítását jelenti.

egy paraméternek több határa is lehet, mint például ez a példa mutatja.

az elfogadó adattípusnak mind az állati, mind az Emlősosztály Alosztályának kell lennie. Ha az egyik ilyen határ egy osztály, akkor először a kötött nyilatkozatban kell szerepelnie.

a fenti példában, ha az emlős egy osztály, az állat pedig egy interfész, akkor az emlősnek először a fentiek szerint kell megjelennie. Ellenkező esetben a kód fordítási hibát okoz.,

Java Generics helyettesítő karakterek

a helyettesítő karaktereket az Általános típusok paramétereinek a módszerekhez történő továbbítására használják. Ellentétben egy általános módszerrel, itt az Általános paramétert átadják a módszer által elfogadott paramétereknek, amelyek eltérnek a fent tárgyalt adattípus paraméterektől. A helyettesítő képviseli a ? szimbólum.

a fenti printItems() method elfogadja listák bármilyen adattípus, mint a paraméter. Ez megakadályozza, hogy a programozóknak meg kell ismételniük a kódokat a különböző adattípusok listáihoz,ami generikumok nélkül lenne.,

felső határolt helyettesítő karakterek

ha korlátozni akarjuk a módszerrel elfogadott listában tárolt adattípusokat, Korlátolt helyettesítő karaktereket használhatunk.

példa:

printSubTypes() metódus csak azokat a listákat fogadja el, amelyek a szín altípusait tárolják. Elfogadja a RedColor vagy a BlueColor objektumok listáját, de nem fogadja el az állati objektumok listáját. Ennek oka az, hogy az állat nem a szín altípusa. Ez egy példa egy felső határolt helyettesítő.,

alsó határolt helyettesítő karakterek

hasonlóképpen, ha volt:

akkor a printSuperTypes() módszer csak olyan listákat fogad el, amelyek a Kutyaosztály szuper típusait tárolják. Elfogadná az emlősök vagy állati tárgyak listáját, de nem a LabDog objektumok listáját, mert a LabDog nem a kutya szuperosztálya, hanem egy alosztály. Ez egy példa egy alacsonyabb határolt helyettesítő.

következtetés

a Java Generics olyan funkcióvá vált,amely a programozók bevezetése óta nem tudnak élni.

Ez a népszerűség annak köszönhető, hogy hatással van a programozók életének megkönnyítésére., Amellett, hogy megakadályozza őket kódolási hibák elkövetésében, a generikumok használata a kódot kevésbé ismétlődővé teszi. Észrevetted, hogyan általánosítja osztályok, módszerek, hogy ne kelljen megismételni kódot a különböző adattípusok?

a generikumok jó megértése fontos ahhoz, hogy a nyelv szakértőjévé váljon. Tehát, ha a gyakorlati kódban megtanulod, amit ebben az oktatóanyagban tanultál, az a módja, hogy továbblépj.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük