Odraz je a proces skúmania alebo úpravy správania triedy za behu za chodu . Rozhranie Java Reflection API sa používa na manipuláciu s triedou a jej členmi, ktoré zahŕňajú polia, metódy, konštruktor atď. za behu modulu. V tomto článku by sme podrobne porozumeli rozhraniu Java Reflection API.
Tento článok sa zameria na nasledujúce ukazovatele:
- Kde sa používa rozhranie Java Reflection API?
- Trieda v balíku java.lang.reflect
- Metódy použité v java.lang.Class
- Ako získať objekt triedy triedy?
- Výhody a nevýhody používania rozhrania Java Reflection API
Začnime teda týmito ukazovateľmi v tomto článku o rozhraní Java Reflection API
Kde sa používa rozhranie Java Reflection API?
Reflection API sa používa hlavne v:
- IDE (Integrated Development Environment) napr. Eclipse, MyEclipse, NetBeans atď.
- Debugger
- Testovacie nástroje atď.
Čo je teda balík Class in Java lang reflect?
Trieda v balíku java.lang.reflect?
Nasleduje zoznam rôznych tried Java v balíku java.lang.package na implementáciu reflexie-
- Lúka : Táto trieda sa používa na zhromažďovanie deklaratívnych informácií, ako sú dátový typ, modifikátor prístupu, názov a hodnota premennej.
- Metóda : Táto trieda sa používa na zhromažďovanie deklaratívnych informácií, ako sú modifikátor prístupu, návratový typ, názov, typy parametrov a typ výnimky metódy.
- Staviteľ : Táto trieda sa používa na zhromažďovanie deklaratívnych informácií, ako sú modifikátory prístupu, názvy a typy parametrov konštruktora.
- Upraviť : Táto trieda sa používa na zhromažďovanie informácií o konkrétnom modifikátore prístupu.
Nie, pozrime sa na metódy Java Reflection API,
Metódy použité v java.lang.Class
Metóda | Popis |
verejný reťazec getName () | vráti názov triedy |
public static Trieda forName (reťazec className) vyvolá ClassNotFoundException | načíta triedu a vráti referenciu triedy Class. |
public Object newInstance () vyvolá InstantiationException, IllegalAccessException | vytvorí novú inštanciu. |
public boolean isInterface () | skontroluje, či ide o rozhranie. |
public boolean isArray () | skontroluje, či je to pole. |
public boolean jePrimitive () | skontroluje, či je to primitívne. |
verejná trieda getSuperclass () | vráti odkaz na nadtriedu. |
public Field [] getDeclaredFields () vyvolá SecurityException | vráti celkový počet polí tejto triedy. |
public Metóda [] getDeclaredMethods () vyvolá SecurityException | vráti celkový počet metód tejto triedy. |
public Constructor [] getDeclaredConstructors () vyvolá SecurityException | vráti celkový počet konštruktorov tejto triedy. |
verejná metóda getDeclaredMethod (názov reťazca, trieda [] parameterTypes) hodí NoSuchMethodException, SecurityException | vráti inštanciu triedy metódy. |
Ako získať objekt triedy triedy?
Existujú 3 spôsoby, ako získať inštanciu triedy Class. Sú to tieto:
- metóda forName () triedy Class
- metóda getClass () triedy Object
- syntax .class
metóda forName () triedy Class
- sa používa na dynamické načítanie triedy.
- vráti inštanciu triedy Class.
- Malo by sa použiť, ak poznáte úplný názov triedy. Toto sa nedá použiť pre primitívne typy.
Pozrime sa na jednoduchý príklad metódy forName ().
trieda Simple {} test triedy {public static void main (String args []) {Class c = Class.forName ('Simple') System.out.println (c.getName ())}}
Výkon:
Jednoduché
Reflexia Java: Metóda API getClass () triedy Object
Vráti inštanciu triedy Class. Malo by sa použiť, ak poznáte typ. Môže sa navyše použiť s primitívmi.
class Simple {} class Test {void printName (Object obj) {Class c = obj.getClass () System.out.println (c.getName ())} public static void main (String args []) {Simple s = new Simple () Test t = new Test () t.printName (s)}}
Výkon:
Jednoduché
Syntax triedy .class
Ak je typ k dispozícii, ale neexistuje žiadna inštancia, je možné získať triedu pripojením „.class“ k názvu typu. Môže sa použiť aj pre primitívny dátový typ.
trieda Test {public static void main (String args []) {Class c = boolean.class System.out.println (c.getName ()) Class c2 = Test.class System.out.println (c2.getName ()) }}
Výkon:
boolovský
Test
java nový dátum z reťazca
Teraz pokračujme v tomto článku Java Reflection API
Výhody a nevýhody používania rozhrania Java Reflection API
Výhody používania rozhrania Java Reflection API
- Funkcie rozšíriteľnosti: Aplikácia môže využívať externé, užívateľom definované triedy vytváraním inštancií objektov rozšíriteľnosti pomocou svojich plne kvalifikovaných názvov.
- Nástroje na ladenie a testovanie : Debuggery používajú vlastnosť reflexie na skúmanie súkromných členov v triedach.
Nevýhody používania rozhrania Java Reflection API
- Výkonová réžia: Reflexné operácie majú pomalší výkon ako ich nereflexné náprotivky a je potrebné sa im vyhnúť v častiach kódu, ktoré sa v aplikáciách citlivých na výkon často volajú.
- Expozícia vnútorných priestorov: Reflexný kód porušuje abstrakcie, a preto môže pri aktualizácii platformy zmeniť správanie.
Dostali sme sa tak na koniec tohto článku o „Java Reflection API“. Ak sa chcete dozvedieť viac,pozrite sa na Edureka, dôveryhodná online vzdelávacia spoločnosť. Výcvikový a certifikačný kurz Edureka Java J2EE a SOA je navrhnutý tak, aby vás vyškolil na základné aj pokročilé koncepty Java spolu s rôznymi rámcami Java, ako je Hibernate & Spring.
Máte na nás otázku? Uveďte to prosím v sekcii komentárov tohto článku a my sa vám ozveme čo najskôr.