Java Reflection API: vse, kar morate vedeti



Ta članek vam bo predstavil Java Reflection API in z demonstracijo pomagal tudi, kako Reflection deluje v Javi in ​​kaj točno je

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:





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.

Gremo naprej s člankom,

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.