Jó lenne, ha egyetlen rendezési módszert írhatnánk, amely rendezni tudja az Integer tömb, egy String tömb elemeit , vagy bármilyen típusú tömb, amely támogatja a megrendelést.
A Java általános metódusai és általános osztályai lehetővé teszik a programozók számára, hogy egyetlen metódusdeklarációval, a kapcsolódó metódusok halmazával, vagy egyetlen osztálydeklarációval meghatározzanak egy halmazt. a kapcsolódó típusoké.
A generikusok fordítási idő típusú biztonságot is nyújtanak, amely lehetővé teszi a programozók számára, hogy fordításkor érvénytelen típusokat találjanak.
A Java Generic koncepció használatával írhatunk egy általános módszert egy tömb objektum rendezéséhez, majd hívja meg az általános metódust egész szám tömbökkel, kettős tömbökkel, karakterlánc tömbökkel és így tovább a tömb elemek rendezéséhez.
Általános módszerek
Írhat egyetlen általános módszeres deklaráció, amely kb különféle típusú érvekkel. Az általános metódushoz továbbított argumentumok típusai alapján a fordító az egyes metódushívásokat megfelelően kezeli. Az általános metódusok meghatározásának szabályai az alábbiak:
-
Az összes általános metódusdeklarációhoz tartozik egy típusú paraméter szakasz, amelyet szögletes zárójelek határolnak (< és >), amely megelőzi a módszer visszatérési típusát (< E > a következő példában ).
-
Minden típusparaméter egy vagy több vesszővel elválasztott típusparamétert tartalmaz. A típusparaméter, más néven típusváltozó, olyan azonosító, amely egy általános típusnevet határoz meg .
-
A típusparaméterek felhasználhatók a visszatérési típus deklarálásához, és helyőrzőkként működhetnek az általános metódushoz továbbított argumentumok típusainál, amelyek tényleges típusú argumentumként ismertek.
-
Egy általános módszer törzsét deklarálják, mint bármely más módszerét. Ne feledje, hogy a típusparaméterek csak referenciatípusokat képviselhetnek, nem primitív típusokat (például int, double és char).
Példa
A következő példa bemutatja, hogyan képes kinyomtatni egy különféle tömböt egyetlen általános módszerrel –
Ez a következő eredményt eredményezi –
Output
Array integerArray contains:1 2 3 4 5 Array doubleArray contains:1.1 2.2 3.3 4.4 Array characterArray contains:H E L L O
Korlátozott típusparaméterek
Előfordulhat, hogy korlátozni szeretné azokat a típusokat, amelyeket átengedhetünk egy típusparaméternek. Például egy számokkal működő módszer csak a Number vagy annak alosztályainak példányait akarja elfogadni. Erre szolgálnak a korlátozott típusparaméterek.
Határolt típusú paraméter deklarálásához sorolja fel a type paraméter nevét, majd az extends kulcsszót, majd felső határa.
Példa
A következő példa bemutatja, hogy az extends általános értelemben használva azt jelenti, hogy “kiterjeszti” (mint az osztályoknál) vagy “megvalósítja” (mint az interfészeken) . Ez a példa Általános módszer a három összehasonlítható objektum közül a legnagyobb visszaadására –
Ez a következő eredményt eredményezi –
Output
Max of 3, 4 and 5 is 5Max of 6.6,8.8 and 7.7 is 8.8Max of pear, apple and orange is pear
Általános osztályok
Egy általános osztálydeklaráció úgy néz ki, mint egy nem általános osztálydeklaráció, azzal a különbséggel, hogy az osztálynevet egy típusparaméter-szakasz követi.
Mint az általánosnál metódusok esetén egy általános osztály típusparaméter-szakaszában lehet egy vagy több vesszővel elválasztott típusparaméter. Ezeket az osztályokat paraméterezett osztályoknak vagy paraméterezett típusoknak nevezik, mivel elfogadnak egy vagy több paramétert.
Példa
A következő példa bemutatja, hogyan definiálhatunk egy általános osztályt –
Ez a következő eredményt eredményezi –
Kimenet
Integer Value :10String Value :Hello World