Odsev je postopek preverjanja ali spreminjanja vedenja časa izvajanja razreda v času izvajanja . Java Reflection API se uporablja za manipulacijo razreda in njegovih članov, ki med izvajanjem vključujejo polja, metode, konstruktor itd. V tem članku bi podrobno razumeli Java Reflection API.
Ta članek se bo osredotočil na naslednje napotke:
- Kje se uporablja API za odsev Java?
- Predavanje v paketu java.lang.reflect
- Metode, uporabljene v java.lang.Class
- Kako priti do predmeta razreda Class?
- Prednosti in slabosti uporabe API-ja Java Reflection
Začnimo s temi kazalci v tem članku o API-ju Java Reflection
Kje se uporablja Java Reflection API?
Reflection API se uporablja predvsem v:
- IDE (Integrirano razvojno okolje) npr. Eclipse, MyEclipse, NetBeans itd.
- Razhroščevalec
- Testna orodja itd.
Torej, kaj je Class in Java lang odraža paket?
Predavanje v paketu java.lang.reflect?
Sledi seznam različnih razredov Java v java.lang.package za izvajanje refleksije-
kaj so spremenljivke primerka
- Polje : Ta razred se uporablja za zbiranje deklarativnih informacij, kot so tip podatkov, modifikator dostopa, ime in vrednost spremenljivke.
- Metoda : Ta razred se uporablja za zbiranje deklarativnih informacij, kot so modifikator dostopa, vrsta vrnitve, ime, tipi parametrov in vrsta izjeme metode.
- Graditelj : Ta razred se uporablja za zbiranje deklarativnih informacij, kot so modifikator dostopa, imena in tipi parametrov konstruktorja.
- Uredi : Ta razred se uporablja za zbiranje informacij o določenem modifikatorju dostopa.
Ne, oglejmo si metode Java Reflection API,
Metode, uporabljene v java.lang.Class
Metoda | Opis |
javni niz getName () | vrne ime razreda |
javni statični razred forName (niz className) vrže ClassNotFoundException | naloži razred in vrne referenco razreda Class. |
public Object newInstance () vrže InstantiationException, IllegalAccessException | ustvari nov primerek. |
javni logični isInterface () | preveri, ali je vmesnik. |
javni logični isArray () | preveri, ali je matrika. |
javni logični isPrimitive () | preveri, ali je primitiven. |
javni razred getSuperclass () | vrne referenco razreda superklase. |
javno polje [] getDeclaredFields () vrže SecurityException | vrne skupno število polj tega razreda. kaj je metoda javascript |
javna metoda [] getDeclaredMethods () vrže SecurityException | vrne skupno število metod tega razreda. |
javni konstruktor [] getDeclaredConstructors () vrže SecurityException | vrne skupno število konstruktorjev tega razreda. |
javna metoda getDeclaredMethod (ime niza, razred [] parameterTypes) vrže NoSuchMethodException, SecurityException | vrne primerek razreda metode. |
Kako priti do predmeta razreda Class?
Obstajajo trije načini za pridobitev primerka razreda Class. Ti so naslednji:
- metoda forName () razreda razreda
- metoda getClass () razreda Object
- sintaksa .class
metoda forName () razreda razreda
- se uporablja za dinamično nalaganje razreda.
- vrne primerek razreda Class.
- Uporabiti ga je treba, če poznate popolnoma kvalificirano ime razreda. Tega ni mogoče uporabiti za primitivne tipe.
Oglejmo si preprost primer metode forName ().
class Simple {} test razreda {public static void main (String args []) {Class c = Class.forName ('Simple') System.out.println (c.getName ())}}
Izhod:
Preprosto
Java Reflection: API getClass () metoda predmeta Object
Vrne primerek razreda Class. Uporabiti ga je treba, če poznate vrsto. Poleg tega se lahko uporablja s primitivi.
class Simple {} Test Test {void printName (Object obj) {Class c = obj.getClass () System.out.println (c.getName ())} public static void main (String args []) {Simple s = new Preprost () test t = nov test () t.printName (s)}}
Izhod:
Preprosto
Sintaksa .class
Če je vrsta na voljo, vendar ni primerka, lahko razred pridobite tako, da imenu tipa dodate '.class'. Lahko se uporablja tudi za primitivni podatkovni tip.
class 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 ()) }}
Izhod:
logično
Preizkus
Zdaj pa nadaljujmo s tem člankom Java Reflection API
Prednosti in slabosti uporabe API-ja Java Reflection
Prednosti uporabe Java Reflection API
- Lastnosti razširljivosti: Aplikacija lahko uporablja zunanje, uporabniško določene razrede z ustvarjanjem primerkov razširljivih predmetov z uporabo njihovih popolnoma kvalificiranih imen.
- Orodja za odpravljanje napak in preskušanje : Razhroščevalniki uporabljajo lastnost odseva za pregled zasebnih članov v razredih.
Slabosti uporabe Java Reflection API
- Režijski stroški: Odsevne operacije imajo počasnejše delovanje kot njihovi odsevni kolegi, zato se jim je treba izogibati v odsekih kode, ki jih v aplikacijah, občutljivih na delovanje, pogosto imenujemo.
- Izpostavljenost notranjih delov: Odsevna koda razbije abstrakcije in zato lahko spremeni vedenje z nadgradnjami platforme.
Tako smo prišli do konca tega članka o 'Java Reflection API'. Če želite izvedeti več,preverite Edureka, zaupanja vredno podjetje za spletno učenje. Edurekin tečaj za usposabljanje in certificiranje Java J2EE in SOA je zasnovan tako, da vas usposobi za temeljne in napredne koncepte Java, skupaj z različnimi Java okviri, kot sta Hibernate & Spring.
Imate vprašanje za nas? Prosimo, omenite ga v oddelku za komentarje tega članka in odgovorili vam bomo v najkrajšem možnem času.