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 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 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 a v 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ť.