26. diel - Reflexie 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.
Reflexie
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 av 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 (atribut == "jmeno") uzivatel.jmeno = hodnota; else if (atribut == "prijmeni") uzivatel.prijmeni = hodnota;
a podobne. Reflexia nám v tejto situácii umožní siahnuť na atribút podľa
jeho názvu odovzdanom ako String
a objektu, ktorému má
patriť.
Reflexia je však ešte mocnejší nástroj, ktorý môže v zlých rukách
narobiť veľkú paseku. Na konci dnešnej lekcie si ukážeme, ako pomocou nej
je 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 av krajných prípadoch, kde 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 trocha teórie. Zoznámime sa najskôr 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ť.