Generické typy
Když jsem si stáhnul a nainstaloval Java 5 na svůj počítač, byl jsem zvědavý jaké nové funkčnosti nám tato nová verze přinese. Okamžitě jsem si koupil knížku od Rudolfa Pecinovského, "Java 5.0 - Novinky jazyka a upgrade aplikací" a pustil jsem se do objevování co nového je.
Zajimavé jsou všechny nové funkčnosti. Až snad na enum, ty nepracují tak jak mají a když se snažíte o serializaci, tak se Vám nepodaří nalézt nastavené hodnoty. Zkrátka enum v Jave pořádně nefungují. Proto budeme muset jestě nějakou dobu používat vlastnoruční enumy.
O čem jsou generycké typy? Jednodušše řečeno, generické typy slouží pro vytváření abstraktních znovu použitelných typů. Tím se stává třída velmi mocná. Využít toho lze pro vytváření znovu použitelných tříd (například lze vytvořít "Generické DAO") . Dálší z hlavních funkčností je vytvoření typově bezpečných kolekcí.
Jak lze využít generických typů pro zajištění typově bezpečných kolekcí můžeme vidět v následujícím kódu.
Tato konstrukce nám zajistí typovou bezpečnost kolekce, to znamená, že pokud se pokusíme přidat do těchto kolekcí něco jiného něz jsme nadefinovaly, nepodaří se nám to ani zkompilovat natož spustit. Následující výpis kódu ukazuje jak toto vhodně použít.
Zde je ukázka pokusu vložit objekt jiného typu do typově bezpečné kolekce. Tato snaha skončí neuspěšným pokusem o přeložení.
Co se děje na pozadí při vložení objektu správného typu? Překladač, jednoduše řečeno, udělá následné.
Nebo by se dalo říct, že jen ořeže kolekci od generických typů. A proč? Hlavní je zajistit, aby programor nevědomky (nebo snad ne umyslně) neplnil kolekci jiným typem. Doposud to šlo řešit tak že se vytvořila třída, která zaobalila kolekci svými metodami a zajistila tak typovou bezpečnost, zatím co kolekce byla pro okolí neviditelná.
Pro to, co lze nyní napsat jedním řádkem se musela napsat celá třída. Zjednodušeně by se dalo říct, že jde v tomto případě jen pro programátorovo pohodlí.
Zajimavé jsou všechny nové funkčnosti. Až snad na enum, ty nepracují tak jak mají a když se snažíte o serializaci, tak se Vám nepodaří nalézt nastavené hodnoty. Zkrátka enum v Jave pořádně nefungují. Proto budeme muset jestě nějakou dobu používat vlastnoruční enumy.
O čem jsou generycké typy? Jednodušše řečeno, generické typy slouží pro vytváření abstraktních znovu použitelných typů. Tím se stává třída velmi mocná. Využít toho lze pro vytváření znovu použitelných tříd (například lze vytvořít "Generické DAO") . Dálší z hlavních funkčností je vytvoření typově bezpečných kolekcí.
Jak lze využít generických typů pro zajištění typově bezpečných kolekcí můžeme vidět v následujícím kódu.
Tato konstrukce nám zajistí typovou bezpečnost kolekce, to znamená, že pokud se pokusíme přidat do těchto kolekcí něco jiného něz jsme nadefinovaly, nepodaří se nám to ani zkompilovat natož spustit. Následující výpis kódu ukazuje jak toto vhodně použít.
List<String> stringList = new ArrayList<String>();
stringList.add("retezec");Zde je ukázka pokusu vložit objekt jiného typu do typově bezpečné kolekce. Tato snaha skončí neuspěšným pokusem o přeložení.
stringList.add(new Integer(0));Co se děje na pozadí při vložení objektu správného typu? Překladač, jednoduše řečeno, udělá následné.
List stringList = new ArrayList();
stringList.add("retezec");Nebo by se dalo říct, že jen ořeže kolekci od generických typů. A proč? Hlavní je zajistit, aby programor nevědomky (nebo snad ne umyslně) neplnil kolekci jiným typem. Doposud to šlo řešit tak že se vytvořila třída, která zaobalila kolekci svými metodami a zajistila tak typovou bezpečnost, zatím co kolekce byla pro okolí neviditelná.
Pro to, co lze nyní napsat jedním řádkem se musela napsat celá třída. Zjednodušeně by se dalo říct, že jde v tomto případě jen pro programátorovo pohodlí.


0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home