26. diel - Reflexia v Jave
V predchádzajúcom kvíze, Kvíz - Abstraktná trieda, enum, boxing a klonovanie v Jave OOP, sme si overili nadobudnuté skúsenosti z predchádzajúcich lekcií.
Ešte než opustíme OOP sekciu, chcel by som vás zoznámiť s pokročilou technikou – reflexiou.
Reflexia
Reflexia je nástroj, pomocou ktorého je možné zistiť za behu programu informácie o nejakej triede alebo inštancii, pristúpiť k jej atribútom a v neposlednom rade meniť hodnoty týchto atribútov.
Na čo je to dobré?
Vďaka reflexii môžeme napr. vytvoriť inštanciu triedy, ktorej názov
nám niekde prišiel ako String
a pred spustením programu teda
nevieme, akú inštanciu tu budeme vytvárať. To sa môže hodiť napr. pri
parsovaní nejakých textových súborov, o ktorých vopred nevieme, čo
obsahujú. Možno ste už niekedy použili bezduché vetvenia typu:
if (attribute == "first_name") { user.first_name = value; } else if (attribute == "last_name") { user.last_name = value; }
Reflexia nám v tejto situácii umožní siahnuť na atribút podľa jeho
názvu odovzdaného ako String
a objektu, ktorému má patriť.
Reflexia je však ešte mocnejší nástroj, ktorý môže v nesprávnych
rukách narobiť veľkú škodu. Na konci dnešnej lekcie si ukážeme, ako je
pomocou nej možné modifikovať private
atribúty zvonku. Ouch
Reflexia je tiež relatívne
náročná na pamäť, preto by ste túto techniku mali využívať iba
minimálne a v krajných prípadoch, kde naozaj dáva zmysel. Môžeme ju
použiť napr. pri už spomínanom parsovaní, nikto nemá rád kilometrové
konštrukcie switch
class
Než sa pustíme do praxe, treba ešte prebrať trochu teórie. Najskôr sa zoznámime s metódami, pomocou ktorých môžeme s triedami manipulovať. K metódam pre reflexiu sa dostaneme cez triedu, ktorú
...koniec náhľadu článku...
Pokračuj ďalej
Minul si až sem a to je super! Veríme, že ti prvé lekcie ukázali niečo nového a užitočného.
Chceš v kurze pokračovať? Prejdi do prémiové sekcie.
Obmedzená ponuka: Nauč sa všetko a ušetri
Obsah článku spadá pod licenciu Premium, kúpou článku súhlasíš so zmluvnými podmienkami.
- Neobmedzený a trvalý prístup k jednotlivým lekciím.
- Kvalitné znalosti v oblasti IT.
- Zručnosti, ktoré ti pomôžu získať vysnívanú a dobre platenú prácu.
Popis článku
Požadovaný článok má nasledujúci obsah:
V Java tutoriále sa zoznámime so základnými princípmi reflexie. Pozrieme sa na základné metódy pre prístup k atribútom triedy.
Kredity získaš, keď podporíš našu sieť. To môžeš urobiť buď zaslaním symbolickej sumy na podporu prevádzky alebo pridaním obsahu na sieť.