Co je Generics v Javě? - Průvodce pro začátečníky



Tento článek o Generics v Javě poskytne krátký vhled do toho, co je generika Java a jeho různé typy, spolu s příklady.

Zvažte příklad, kdy musíte vytvořit seznam živých věcí v dané lokalitě. Nezáleží na tom, zda jde o člověka, zvíře nebo rostlinu. Vše, na čem záleží, je živý tvor. V takovém případě je všechny seskupíte do kategorie „Živé věci“ a nebudete je kategorizovat. Podobně, když musíte ukládat některá data, je pro vás důležitý obsah, nikoli datový typ, a tam používáte Generics. Generika v je jazyková funkce, která umožňuje použití obecných typů a metod.

Níže je uveden seznam témat, kterým se budu v tomto článku věnovat:





Co je Generics v Javě?

Generika je termín, který označuje sadu jazykových funkcí souvisejících s definicí a použitím obecných typů a metod. Obecné metody Java se liší od běžných datových typů a metod. Před generiky jsme použili ukládat jakýkoli typ objektů, tj. negenerický . Generika nyní vynutila programátor pro uložení konkrétního typu objektů.

Nyní, když víte, co je Generics v Javě, pojďme dále a pochopte, proč potřebujete Java Generics.



Proč Java Generics?

Pokud se podíváte na třídy, pak zjistíte, že většina tříd má parametr / argument typu Object. V zásadě v této formě mohou brát jakýkoli typ Javy jako argument a vrátit stejný objekt nebo argument. Jsou to v zásadě heterogenní tj. není podobného typu.

FrameworkHierarchy - Generika v Javě - Edureka

V aplikaci Java někdy není datový typ vstupu opraven. Vstup může být celé číslo , do plovák nebo . Aby bylo možné přiřadit vstup k správného datového typu bylo nutné provést předchozí kontroly. V tradičním přístupu byl po převzetí vstupu zkontrolován datový typ vstupu a poté byl přiřazen k proměnné správného datového typu. Když byla použita tato logika, byla prodloužena délka kódu a doba provádění. Aby se tomu zabránilo, Byly zavedeny generické léky . Když používáte Generics, parametry v kódu se kontrolují automaticky v době kompilace a ve výchozím nastavení nastaví datový typ. Zde tedy potřebujete koncept generik v Javě.



Nyní, když jste získali nějaké informace o generikách, pojďme se podívat na různé způsoby, jak na toGenerika lze použít na zdrojový kód.

Typy generických Java

Existují 4 různé způsoby, jak lze generiku použít v Javě, a jsou následující:

  1. Obecná typová třída
  2. Obecné rozhraní
  3. Obecná metoda
  4. Obecný konstruktor

Pojďme nyní pochopit, jak lze generika aplikovat na třídu typů do hloubky.

1. Obecná typová třída

O třídě se říká, že je obecná, pokud deklaruje jednu nebo více proměnných typu. Tyto typy proměnných se označují jako parametry typu . Pochopme to pomocí příkladu. V níže uvedeném příkladu vytvořím třídu s jednou vlastností X a typ vlastnosti je objekt.

třídit pole c ++ vzestupně
třída Obecná třída {soukromý objekt x veřejná neplatná sada (objekt x) {this.x = x} veřejný objekt get () {návrat x}}

Tady, jakmile inicializujete třídu s určitým typem, měla by se třída použít pouze s tímto konkrétním typem. Např. Pokud chcete, aby jedna instance třídy obsahovala hodnotu X typu Tětiva „, Pak by měl programátor nastavit a získat jediný typ. Protože jsem deklaroval typ vlastnosti na Object, neexistuje žádný způsob, jak toto omezení vynutit. Programátor může nastavit jakýkoli objekt a může očekávat jakýkoli typ návratové hodnoty získat metodu protože všechny typy Java jsou podtypy třída.

K vynucení tohoto typu omezení můžeme použít generika, jak je uvedeno níže:

třída Genericclass {// T znamená 'Type' soukromá T x public void set (T x) {this.x = x} public T get () {return x}}

Nyní si můžete být jisti, že třída nebude zneužita nesprávnými typy. Jednoduchý příklad' Obecná třída „Vypadá takto:

Genericclass instance = new Genericclass () instance.set ('Edureka') instance.set (10) // Tím se zvýší chyba času kompilace

Tak to funguje. Tentoanalogie platí i pro rozhraní. Podívejme se rychle na příklad, abychom pochopili, jak lze použít informace obecného typu v rozhraních v Javě.

2. Obecné rozhraní

An odkazuje na abstraktní datové typy. Umožňují manipulovat nezávisle na detailech jejich reprezentace. Také tvoří hierarchii v jazyky. Pojďme pochopit, jak lze obecný typ použít na rozhraní v Javě.

// Definice obecného rozhraní Rozhraní GenericInterface {T2 PerformExecution (T1 x) T1 ReverseExecution (T2 x)} // Třída implementující obecnou třídu rozhraní Genericclass implementuje GenericInterface {public Integer PerformExecution (String x) {// execution code} public String ReverseExecution ( Celé číslo x) {// prováděcí kód}}

Doufám, že jste byli schopni pochopit, jak lze generiku použít na třídu typů a rozhraní. Pojďme se nyní hlouběji věnovat tomuto článku a pochopit, jak je to užitečné pro metody a konstruktory.

3. Obecné metody

Obecné metody jsou velmi podobné obecným třídám. Liší se od sebe pouze v jednom aspektu, kterým informace o rozsahu nebo typu jsou pouze uvnitř metody. Obecné metody zavádějí vlastní parametry typu.

Pochopme to na příkladu. Níže je uveden příklad obecné metody, kterou lze použít k vyhledání všech výskytů parametrů typu v seznamu proměnných.

jak používat nahradit v java
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}

Pokud předáte seznam Řetězec pro vyhledávání v této metodě, bude to fungovat dobře. Ale pokud se pokusíte najít číslo v seznamu String, dá to chybu kompilace času.

Tato analogie je podobná také konstruktoru. Pojďme si vzít příklad pro generický konstruktor a pochopit, jak to funguje.

4. Generický konstruktor

Staviteli je blok kódu, který inicializuje nově vytvořený objekt. A stavitel připomíná instanční metodu v J. ava ale nejde o metodu, protože nemá návratový typ. Konstruktor má stejný název jako třída a vypadá takto v J. ava kód. Pojďme si vzít příklad a pochopit, jak to funguje.

třída Dimenze {soukromá T délka soukromá T šířka soukromá T výška // Obecný konstruktor public Dimenze (T délka, T šířka, T výška) {super () this.length = délka this.width = šířka this.height = výška}}

Ve výše uvedeném příkladu má konstruktor třídy Dimension informace o typu. Můžete tedy mít instanci dimenze se všemi atributy jediného typu. Takto můžete použít konstruktory obecného typu. Doufám, že jste pochopili typy generik v Javě.

Nyní pojďme dále a podívejme se na výhody Generics v Javě.

Výhody generik v Javě

1. Opakovaná použitelnost kódu

Můžete sestavit strategii nebo třídu nebo jednou a použijte pro jakýkoli typ nebo jakýmkoli způsobem, který potřebujete.

2. Casting jednotlivých typů není nutný

V zásadě jste obnovili informace z pokaždé to musíte obsadit. Obsazení na každém úkolu obnovy je hlavní migréna. Aby byl tento přístup odstraněn, byla zavedena generika.

3. Implementace negenerického algoritmu

Může vypočítat algoritmy, které fungují na různých druzích položek, které jsou také bezpečné pro typ.

To bylo všechno o výhodách Java Generics. Tímto se dostáváme na konec tohoto článku o Generics v Javě. Doufám, že jste to shledali informativními a pomohli vám pochopit Java Generics.

Podívejte se na Edureka, důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů rozložených po celém světě. Jsme tu, abychom vám pomohli s každým krokem na vaší cestě, abychom se kromě otázek týkajících se tohoto rozhovoru pro javu stali i učebním plánem, který je určen pro studenty a profesionály, kteří chtějí být vývojářem Java. Kurz je navržen tak, aby vám poskytl náskok v programování v Javě a naučil vás základní i pokročilé koncepty Javy spolu s různými rámci Java, jako je Hibernate & Spring.

Máte na nás dotaz? Uveďte to prosím v sekci komentářů v tomto „Obecném v Javě “Článek a my se vám ozveme co nejdříve.