API Java Reflection: Tot ce trebuie să știți



Acest articol vă va prezenta Java Reflection API și vă va ajuta, de asemenea, cum funcționează Reflection în Java și ce este exact cu demonstrația

Reflecţie este o proces de examinare sau modificare a comportamentului în timpul de execuție al unei clase la timpul de execuție . API Java Reflection este folosit pentru a manipula clasa și membrii săi care includ câmpuri, metode, constructor etc. în timpul rulării. În acest articol vom înțelege în detaliu API-ul Java Reflection.

Acest articol se va concentra pe următoarele indicații:





Deci, haideți să începem cu aceste indicii în acest articol despre Java Reflection API

Unde este folosit Java Reflection API?

API-ul Reflection este utilizat în principal în:



  • IDE (mediu de dezvoltare integrat) de ex. Eclipse, MyEclipse, NetBeans etc.
  • Depanator
  • Instrumente de testare etc.

Deci, ce este pachetul Class in Java lang reflect?

Clasa în pachetul java.lang.reflect?

Urmează o listă a diferitelor clase Java din java.lang.package pentru a implementa reflecția-

  • Camp : Această clasă este utilizată pentru a colecta informații declarative, cum ar fi tipul de date, modificatorul de acces, numele și valoarea unei variabile.
  • Metodă : Această clasă este utilizată pentru a colecta informații declarative, cum ar fi modificatorul de acces, tipul de returnare, numele, tipurile de parametri și tipul de excepție al unei metode.
  • Constructor : Această clasă este utilizată pentru a colecta informații declarative, cum ar fi modificatorul de acces, numele și tipurile de parametri ai unui constructor.
  • Editați | × : Această clasă este utilizată pentru a aduna informații despre un anumit modificator de acces.

Nu, să ne uităm la metodele API Java Reflection,



Metode utilizate în java.lang.Class

Metodă

Descriere

public String getName ()

returnează numele clasei

public static Class forName (String className) aruncă ClassNotFoundException

încarcă clasa și returnează referința clasei de clasă.

Obiect public newInstance () aruncă InstantiationException, IllegalAccessException

creează o nouă instanță.

cum se setează classpath în Linux

public boolean isInterface ()

verifică dacă este interfață.

public boolean isArray ()

cum se creează un set

verifică dacă este matrice.

public boolean isPrimitive ()

verifică dacă este primitiv.

public Class getSuperclass ()

returnează referința clasei superclase.

public Field [] getDeclaredFields () aruncă SecurityException

returnează numărul total de câmpuri din această clasă.

public Method [] getDeclaredMethods () aruncă SecurityException

returnează numărul total de metode ale acestei clase.

public Constructor [] getDeclaredConstructors () aruncă SecurityException

returnează numărul total de constructori din această clasă.

public Method getDeclaredMethod (String name, Class [] parameterTypes) aruncă NoSuchMethodException, SecurityException

returnează instanța clasei de metodă.

Să mergem mai departe cu articolul,

Cum se obține obiectul clasei Class?

Există 3 moduri de a obține instanța clasei Class. Acestea sunt după cum urmează:

  • forName () metoda clasei Class
  • getClass () metoda clasei Object
  • sintaxa clasei

forName () metoda clasei Class

  • este folosit pentru a încărca clasa dinamic.
  • returnează instanța clasei Class.
  • Ar trebui să fie utilizat dacă cunoașteți numele complet calificat al clasei. Acest lucru nu poate fi utilizat pentru tipurile primitive.

Să vedem exemplul simplu al metodei forName ().

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

Ieșire:

Simplu

Java Reflection: Metoda API getClass () a clasei Object

Returnează instanța clasei Class. Ar trebui utilizat dacă știți tipul. Mai mult, poate fi folosit cu primitive.

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

Ieșire:

Simplu

pivot și unpivot în sql

Sintaxa .class

Dacă un tip este disponibil, dar nu există nicio instanță, atunci este posibil să se obțină o clasă prin adăugarea „.class” la numele tipului. Poate fi folosit și pentru tipul de date primitiv.

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

Ieșire:

boolean

Test

Acum să continuăm cu acest articol Java Reflection API

Avantajele și dezavantajele utilizării API-ului Java Reflection

Avantajele utilizării API-ului Java Reflection

  • Caracteristici de extensibilitate: O aplicație poate face uz de clase externe, definite de utilizator, creând instanțe de obiecte de extensibilitate folosind numele lor complet calificate.
  • Instrumente de depanare și testare : Depanatorii folosesc proprietatea reflecției pentru a examina membrii privați în clase.

Dezavantaje ale utilizării API-ului Java Reflection

  • Performanță generală: Operațiile reflectorizante au performanțe mai lente decât omologii lor non-reflectorizante și ar trebui evitate în secțiunile de cod care sunt denumite frecvent în aplicațiile sensibile la performanță.
  • Expunerea internelor: Codul reflectorizant sparge abstracțiile și, prin urmare, poate schimba comportamentul cu upgrade-urile platformei.

Astfel am ajuns la sfârșitul acestui articol despre „Java Reflection API”. Dacă doriți să aflați mai multe,verificați de Edureka, o companie de învățare online de încredere. Cursul de formare și certificare Java J2EE și SOA Edureka este conceput pentru a vă instrui atât pentru conceptele Java de bază, cât și pentru cele avansate Java, împreună cu diverse cadre Java, cum ar fi Hibernate & Spring.

Ai o întrebare pentru noi? Vă rugăm să o menționați în secțiunea de comentarii a acestui articol și vă vom răspunde cât mai curând posibil.