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:
- Gdje se koristi API Java Reflection?
- Predavanje u paketu java.lang.reflect
- Metode korištene u java.lang.Class
- Kako doći do predmeta klase Class?
- Prednosti i nedostaci korištenja Java Reflection API-ja
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. |
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.