Čo je generikum v Jave? - Sprievodca pre začiatočníkov



Tento článok o generike v Jave poskytne stručný náhľad na to, čo sú generické typy Java a ich rôzne typy, spolu s príkladmi.

Zvážte príklad, kde musíte zostaviť zoznam živých vecí v danej lokalite. Nezáleží na tom, či je to človek, zviera alebo rastlina. Dôležitý je iba živý tvor. V takom prípade by ste ich všetky zoskupili do kategórie „Živé veci“ a nekategorizovali by ste ich. Podobne, keď musíte ukladať určité údaje, záleží vám iba na obsahu a nie na dátovom type, a tam použijete generické údaje. Generiká v je jazyková vlastnosť, ktorá umožňuje použitie všeobecných typov a metód.

Ďalej uvádzam zoznam tém, ktorým sa budem v tomto článku venovať:





Čo je generikum v Jave?

Generiká je výraz, ktorý označuje súbor jazykových funkcií súvisiacich s definíciou a použitím všeobecných typov a metód. Generické metódy Java sa líšia od bežných dátových typov a metód. Pred generikami sme používali na uloženie ľubovoľného typu predmetov t.j. negenerické . Teraz generiká nútia programátor na ukladanie konkrétneho typu objektov.

Teraz, keď viete, čo je generika v jazyku Java, poďme ďalej a pochopte, prečo potrebujete generiku Java.



Prečo Java Generics?

Ak sa pozriete na triedy, potom si všimnete, že väčšina tried používa parameter / argument typu Object. V zásade v tejto podobe môžu brať akýkoľvek typ Javy ako argument a vrátiť rovnaký objekt alebo argument. V podstate sú heterogénny teda nie podobného typu.

FrameworkHierarchy - Generické v Jave - Edureka

V aplikácii Java niekedy nie je dátový typ vstupu pevný. Vstup môže byť celé číslo , do plavák alebo . Za účelom priradenia vstupu k správneho dátového typu bolo treba vykonať predbežné kontroly. V tradičnom prístupe sa po prijatí vstupu skontroloval dátový typ vstupu a potom sa priradil k premennej správneho dátového typu. Keď sa použila táto logika, zvýšila sa dĺžka kódu a čas vykonania. Aby sa tomu zabránilo, Boli predstavené generiká . Keď použijete generiku, parametre v kóde sa skontrolujú automaticky v čase kompilácie a predvolene nastaví dátový typ. Takže tu potrebujete koncept generík v Jave.



Teraz, keď ste získali prehľad o generických liekoch, poďme ďalej a pozrime sa rôznymi spôsobmiNa zdrojový kód je možné použiť všeobecné informácie.

Typy generík Java

Existujú 4 rôzne spôsoby, ako možno použiť generiká v Jave, a sú tieto:

  1. Trieda generického typu
  2. Generické rozhranie
  3. Všeobecná metóda
  4. Generický konštruktor

Poďme si teraz uvedomiť, ako sa dajú všeobecné typy použiť na typovú triedu do hĺbky.

1. Generická typová trieda

O triede sa hovorí, že je generická, ak deklaruje jednu alebo viac premenných typu. Tieto typy premenných sú známe ako parametre typu súboru . Poďme to pochopiť pomocou príkladu. V nasledujúcom príklade vytvorím triedu s jednou vlastnosťou X a typ nehnuteľnosti je objekt.

príkaz coto goto
class Genericclass {private Object x public void set (Object x) {this.x = x} public Object get () {return x}}

Tu, akonáhle inicializujete triedu určitým typom, trieda by sa mala použiť iba s konkrétnym typom. Napr. Ak chcete, aby jedna inštancia triedy mala hodnotu X typu „ String ‘, Potom by mal programátor nastaviť a získať jediný typu. Pretože som deklaroval typ vlastnosti na Object, neexistuje spôsob, ako vynútiť toto obmedzenie. Programátor môže nastaviť akýkoľvek objekt a môže od neho očakávať akýkoľvek typ návratovej hodnoty získať metódu pretože všetky typy Java sú podtypmi trieda.

Na vynútenie tohto typu obmedzenia môžeme použiť nasledujúce generiká:

trieda Genericclass {// T znamená 'Type' súkromná T x verejná neplatná množina (T x) {this.x = x} verejné T get () {návrat x}}

Teraz si môžete byť istí, že trieda nebude zneužitá nesprávnymi typmi. Jednoduchý príklad Generická trieda ”Vyzerá takto:

Genericclass instance = new Genericclass () instance.set ('Edureka') instance.set (10) // Toto zvýši chybu času kompilácie

Tak to funguje. Totoobdoba platí aj pre rozhranie. Poďme sa rýchlo pozrieť na príklad, aby sme pochopili, ako možno informácie o všeobecnom type použiť v rozhraniach v Jave.

2. Generické rozhranie

An odkazuje na abstraktné dátové typy. Umožňujú manipulovať nezávisle od podrobností ich znázornenia. Tiež tvoria hierarchiu v jazykoch. Poďme pochopiť, ako je možné použiť všeobecný typ na rozhrania v Jave.

// Definícia generického rozhrania rozhrania GenericInterface {T2 PerformExecution (T1 x) T1 ReverseExecution (T2 x)} // Trieda implementujúca triedu generického rozhrania Genericclass implementuje GenericInterface {public Integer PerformExecution (String x) {// execution code} public String ReverseExecution ( Celé číslo x) {// exekučný kód}}

Dúfam, že ste boli schopní pochopiť, ako možno generiku použiť na typovú triedu a rozhrania. Teraz sa pozrime podrobnejšie na tento článok a pochopme, ako je to užitočné pre metódy a konštruktory.

3. Generické metódy

Generické metódy sú veľmi podobné generickým triedam. Líšia sa od seba iba v jednom aspekte informácie o rozsahu alebo type sú iba vo vnútri metódy. Všeobecné metódy zavádzajú svoje vlastné parametre typu.

Poďme to pochopiť na príklade. Ďalej uvádzame príklad všeobecnej metódy, ktorú je možné použiť na vyhľadanie všetkých výskytov parametrov typu v zozname premenných.

môže byť konštruktér súkromný
public static int countAllOccurrences (T [] list, T element) {int count = 0 if (element == null) {for (T listElement: list) if (listElement == null) count ++} else {for (T listElement: list ) if (element.equals (listElement)) count ++} return count}

Ak odovzdáte zoznam Reťazec na vyhľadávanie v tejto metóde bude fungovať dobre. Ale ak sa pokúsite nájsť číslo v zozname reťazcov, spôsobí to časovú chybu pri kompilácii.

Táto analógia je podobná aj konštruktoru. Uveďme si príklad pre generický konštruktor a pochopme, ako to funguje.

4. Generický konštruktor

Staviteľovi je blok kódu, ktorý inicializuje novovytvorený objekt. A staviteľ pripomína inštančnú metódu v J. ava ale nejde o metódu, pretože nemá návratový typ. Konštruktér má rovnaké meno ako trieda a vyzerá takto v J. ava kód. Teraz si vezmime príklad a pochopme, ako to funguje.

trieda Dimenzia {súkromná T dĺžka súkromná T šírka súkromná T výška // Generický konštruktor public Dimenzia (T dĺžka, T šírka, T výška) {super () this.length = dĺžka this.width = šírka this.height = výška}}

Vo vyššie uvedenom príklade má konštruktor triedy Dimension informácie o type. Takže môžete mať inštanciu dimenzie so všetkými atribútmi iba jedného typu. Takto môžete použiť konštruktory generického typu. Dúfam, že ste pochopili typy generík v Jave.

Poďme teraz ďalej a pozrime sa na výhody Generics v Jave.

Výhody generík v Jave

1. Opätovná použiteľnosť kódu

Môžete zostaviť stratégiu alebo triedu alebo raz a použiť na akýkoľvek typ alebo akýmkoľvek spôsobom, ktorý potrebujete.

2. Casting jednotlivých typov nie je potrebný

V zásade ste obnovili informácie z adresy zakaždým, keď to musíte obsadiť. Pieskovanie pri každej úlohe obnovy je veľká migréna. Na odstránenie tohto prístupu boli zavedené generiká.

3. Implementácia negenerického algoritmu

Môže vypočítať algoritmy, ktoré fungujú aj na rôznych druhoch položiek, ktoré sú bezpečné aj pre typ.

To bolo všetko o výhodách Java Generics. Týmto sa dostávame na koniec tohto článku o Generics v Jave. Dúfam, že ste to našli informatívne a pomohli vám pochopiť Java Generics.

Pozrite sa na autor: Edureka, dôveryhodná online vzdelávacia spoločnosť so sieťou viac ako 250 000 spokojných študentov rozmiestnených po celom svete. Sme tu, aby sme vám pomohli na každom kroku na vašej ceste. Okrem otázok týkajúcich sa tohto rozhovoru pre jazyk java vymyslíme učebný plán určený pre študentov a profesionálov, ktorí sa chcú stať vývojármi Java. Kurz je navrhnutý tak, aby vám dal náskok v programovaní v Jave a naučil vás základné aj pokročilé koncepty Javy spolu s rôznymi rámcami Java, ako je Hibernate & Spring.

Máte na nás otázku? Uveďte to, prosím, v sekcii komentárov v tejto časti „Všeobecné informácie v Jave “Článok a ozveme sa vám čo najskôr.