Java Reflection API: Sve što trebate znati



Ovaj će vas članak predstaviti Java Reflection API-ju, a također će vam pomoći kako Reflection funkcionira u Javi i što je točno s demonstracijom

Odraz je postupak ispitivanja ili modificiranja ponašanja klase u vrijeme izvođenja . Java Reflection API koristi se za manipulaciju klasom i njezinim članovima koji uključuju polja, metode, konstruktor itd. tijekom izvođenja. U ovom bismo članku detaljno razumjeli Java Reflection API.

Ovaj će se članak usredotočiti na sljedeće upute:





Pa krenimo s ovim uputama u ovom članku o Java Reflection API-ju

Gdje se koristi Java Reflection API?

Reflection API se uglavnom koristi u:



  • IDE (Integrirano razvojno okruženje) npr. Eclipse, MyEclipse, NetBeans itd.
  • Program za ispravljanje pogrešaka
  • Alati za testiranje itd.

Dakle, što je Class in Java lang odražavaju paket?

Predavanje u paketu java.lang.reflect?

Slijedi popis različitih Java klasa u java.lang.package za implementaciju refleksije-

  • Polje : Ova se klasa koristi za prikupljanje deklarativnih podataka poput tipa podataka, modifikatora pristupa, imena i vrijednosti varijable.
  • Metoda : Ova se klasa koristi za prikupljanje deklarativnih podataka kao što su modifikator pristupa, vrsta povrata, ime, vrste parametara i vrsta iznimke metode.
  • Graditelj : Ova se klasa koristi za prikupljanje deklarativnih podataka poput modifikatora pristupa, naziva i tipova parametara konstruktora.
  • Uredi : Ova se klasa koristi za prikupljanje podataka o određenom modifikatoru pristupa.

Ne, pogledajmo metode Java Reflection API-ja,



Metode korištene u java.lang.Class

Metoda

Opis

cloudera certificirani administrator za apache hadoop

javni niz getName ()

vraća naziv klase

javna statička klasa forName (string className) baca ClassNotFoundException

učitava klasu i vraća referencu klase klase.

javni objekt newInstance () baca InstantiationException, IllegalAccessException

stvara novu instancu.

javni boolean isInterface ()

provjerava je li to sučelje.

javni logički isArray ()

koja su ograničenja u sql-u

provjerava je li to niz.

javna logička vrijednost isPrimitive ()

provjerava je li primitivan.

javna klasa getSuperclass ()

vraća referencu klase superklase.

javno polje [] getDeclaredFields () baca SecurityException

vraća ukupan broj polja ove klase.

javna metoda [] getDeclaredMethods () baca SecurityException

vraća ukupan broj metoda ove klase.

javni konstruktor [] getDeclaredConstructors () baca SecurityException

vraća ukupan broj konstruktora ove klase.

javna metoda getDeclaredMethod (naziv niza, klasa [] parameterTypes) baca NoSuchMethodException, SecurityException

vraća instancu klase metode.

Krenimo naprijed sa člankom,

Kako doći do predmeta klase Class?

Postoje 3 načina za dobivanje instance klase Class. Oni su sljedeći:

  • metoda forName () klase Class
  • getClass () metoda klase Objekt
  • sintaksa .razreda

metoda forName () klase Class

  • koristi se za dinamičko učitavanje klase.
  • vraća instancu klase Class.
  • Treba ga koristiti ako znate potpuno kvalificirani naziv klase. Ovo se ne može koristiti za primitivne tipove.

Pogledajmo jednostavan primjer forName () metode.

class Simple {} Test klase {public static void main (String args []) {Class c = Class.forName ('Simple') System.out.println (c.getName ())}}

Izlaz:

Jednostavan

Java Reflection: API metoda getClass () klase Objekt

Vraća instancu klase klase. Treba ga koristiti ako znate vrstu. Štoviše, može se koristiti s primitivima.

class Jednostavno {} test klase {void printName (objekt obj) {Class c = obj.getClass () System.out.println (c.getName ())} public static void main (String args []) {Simple s = new Jednostavni () test t = novi test () t.printName (s)}}

Izlaz:

Jednostavan

rukovanje iznimkama u pl sql

Sintaksa .razreda

Ako je vrsta dostupna, ali ne postoji instanca, tada je moguće dobiti klasu dodavanjem naziva '.class' nazivu tipa. Može se koristiti i za primitivni tip podataka.

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 ()) }}

Izlaz:

boolean

Test

Sada nastavimo s ovim člankom Java Reflection API

Prednosti i nedostaci korištenja Java Reflection API-ja

Prednosti korištenja Java Reflection API-ja

  • Značajke proširivosti: Aplikacija može koristiti vanjske, korisnički definirane klase stvaranjem instanci objekata proširivosti koristeći njihova potpuno kvalificirana imena.
  • Alati za otklanjanje pogrešaka i testiranje : Debuggeri koriste svojstvo refleksije za ispitivanje privatnih članova u nastavi.

Mane upotrebe Java Reflection API-ja

  • Režija izvedbe: Reflektirajuće operacije imaju sporije performanse od svojih nereflektirajućih kolega i treba ih izbjegavati u odjeljcima koda koji se često nazivaju u aplikacijama osjetljivim na izvedbu.
  • Izloženost unutrašnjih dijelova: Reflektirajući kôd razbija apstrakcije i stoga može promijeniti ponašanje s nadogradnjama platforme.

Tako smo došli do kraja ovog članka o 'Java Reflection API'. Ako želite saznati više,provjerite Edureka, pouzdane tvrtke za internetsko učenje. Edurekin tečaj za obuku i certificiranje Java J2EE i SOA osmišljen je kako bi vas osposobio za osnovne i napredne Java koncepte, zajedno s raznim Java okvirima poput Hibernate & Spring.

Imate pitanje za nas? Molimo navedite ga u odjeljku za komentare ovog članka i javit ćemo vam se što je prije moguće.