Vianoce v ITnetwork sú tu! Dobí si teraz kredity a získaj až 80 % extra kreditov na e-learningové kurzy ZADARMO. Zisti viac.
Hľadáme nové posily do ITnetwork tímu. Pozri sa na voľné pozície a pridaj sa k najagilnejšej firme na trhu - Viac informácií.

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

Vedomosti v hodnote stoviek tisíc získaš za pár korún

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

Kúpiť všetky aktuálne dostupné lekcie s funkciou odovzdávanie úloh a certifikátom za exkluzívnu cenu 670 kreditov
Aktuálny stav konta 0 kreditov
Kúpou tohoto výhodného balíčku získaš prístup ku všetkým 39 článkom (26 lekcií, 8 praktických cvičení, 5 testov) s kontrolou a certifikáciou a ešte naviac ušetríš 223 Kč. Ponuka je časovo obmedzená a platí pro všetky lekcie v kurze. Nakúp teraz a získaj limitovanou 25% zľavu.

Obsah článku spadá pod licenciu Premium, kúpou článku súhlasíš so zmluvnými podmienkami.

Čo od nás v ďalších lekciách dostaneš?
  • 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ť.

Článok pre vás napísal Petr Štechmüller
Avatar
Autor se věnuje primárně programování v Javě, ale nebojí se ani webových technologií.
Aktivity