Java Reflection API: Minden, amit tudnia kell

Ez a cikk bemutatja a Java Reflection API-t, és bemutatással is segíti a Reflection működését a Java-ban, és pontosan mi is ez

Visszaverődés egy az osztály futásidejű viselkedésének vizsgálatának vagy módosításának folyamata . Java Reflection API az osztály és tagjainak manipulálására szolgál, amelyek futás közben tartalmaznak mezőket, módszereket, konstruktort stb. Ebben a cikkben részletesen megértjük a Java Reflection API-t.



Ez a cikk a következő mutatókra összpontosít:



Kezdjük tehát ezeket a mutatókat a Java Reflection API-s cikkünkben

Hol használják a Java Reflection API-t?

A Reflection API-t elsősorban:



  • IDE (Integrated Development Environment) pl. Eclipse, MyEclipse, NetBeans stb.
  • Hibakereső
  • Teszteszközök stb.

Tehát mi a Class in Java lang refl csomag?

Osztály a java.lang.reflect csomagban?

Az alábbiakban felsoroljuk a Java Java osztályok listáját a java.lang.package alkalmazásban a reflexió-

  • Terület : Ez az osztály olyan deklaratív információk gyűjtésére szolgál, mint például az adattípus, a hozzáférés-módosító, a változó neve és értéke.
  • Módszer : Ezt az osztályt olyan deklaratív információk gyűjtésére használják, mint a hozzáférés módosítója, a visszatérés típusa, a név, a paramétertípusok és a módszer kivétel típusa.
  • Építész : Ezt az osztályt olyan deklaratív információk gyűjtésére használják, mint a hozzáférés módosítója, a konstruktor neve és paraméterei.
  • Szerkesztés : Ez az osztály egy adott hozzáférés-módosítóval kapcsolatos információk gyűjtésére szolgál.

Ne vessünk egy pillantást a Java Reflection API módszerekre,



A java.lang.Class alkalmazásában alkalmazott módszerek

Módszer

Leírás

public String getName ()

visszaadja az osztály nevét

public static Class forName (String className) dobja a ClassNotFoundException-t

betölti az osztályt és visszaadja az osztály osztály hivatkozását.

public Object newInstance () dobja az InstantiationException, az IllegalAccessException elemeket

új példányt hoz létre.

nyilvános logikai isInterface ()

ellenőrzi, hogy interfész-e.

nyilvános logikai isArray ()

ellenőrzi, hogy tömb-e.

nyilvános logikai érték isPrimitive ()

ellenőrzi, hogy primitív-e.

nyilvános osztály getSuperclass ()

a szuperosztály osztály hivatkozását adja vissza.

public Field [] getDeclaredFields () dobja a SecurityException-t

az osztály mezőinek teljes számát adja eredményül.

public Method [] getDeclaredMethods () dobja a SecurityException-t

az osztály metódusainak teljes számát adja eredményül.

public Constructor [] getDeclaredConstructors () dobja a SecurityException-t

ennek az osztálynak a konstruktőreinek teljes számát adja eredményül.

public metódus getDeclaredMethod (karakterlánc neve, Osztály [] paraméterTípusok) dobja a NoSuchMethodException, SecurityException

a metódus osztály példányát adja vissza.

Haladjunk tovább a cikkel,

Hogyan lehet megszerezni a Class osztály objektumát?

Három módon lehet lekérni a Class osztály példányát. Ezek a következők:

  • osztály osztály forName () metódusa
  • Az objektum osztály getClass () metódusa
  • a .osztály szintaxisa

osztály osztály forName () metódusa

  • az osztály dinamikus betöltésére szolgál.
  • a Class osztály példányát adja vissza.
  • Akkor kell használni, ha ismeri az osztály teljesen minősített nevét. Ez nem használható primitív típusoknál.

Lássuk a forName () metódus egyszerű példáját.

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

Kimenet:

Egyszerű

Java Reflection: Az objektum osztály API getClass () metódusa

Visszaadja a Class osztály példányát. Akkor kell használni, ha ismeri a típust. Sőt, primitívekkel is használható.

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 Egyszerű () teszt t = új teszt () t.printNév (ek)}}

Kimenet:

Egyszerű

A .osztály szintaxisa

Ha rendelkezésre áll egy típus, de nincs példány, akkor úgy lehet osztályt megszerezni, hogy a típus nevéhez fűzzük a „.class” szót. Ez primitív adattípushoz is használható.

class Test {public static void main (String args []) {c osztály = logikai osztály osztály.out.println (c.getName ()) c2 osztály = Test.class System.out.println (c2.getName ()) }}

Kimenet:

logikai érték

Teszt

Most folytassuk ezt a Java Reflection API cikket

A Java Reflection API használatának előnyei és hátrányai

A Java Reflection API használatának előnyei

  • Bővíthetőség: Egy alkalmazás használhat külső, felhasználó által definiált osztályokat azáltal, hogy a kiterjeszthetőségi objektumok példányait teljesen minősített nevükkel hozza létre.
  • Hibakereső és tesztelő eszközök : A hibakeresők a reflexió tulajdonságát használják az osztályok magántagjainak megvizsgálására.

A Java Reflection API használatának hátrányai

  • Teljesítmény rezsi: A fényvisszaverő műveletek teljesítménye lassabb, mint a nem tükröző társaiké, ezért ezeket el kell kerülni azokban a kódrészekben, amelyeket a teljesítményérzékeny alkalmazásokban gyakran hívnak.
  • Belsők kitettsége: A fényvisszaverő kód megszakítja az absztrakciókat, ezért megváltoztathatja a viselkedést a platform frissítésével.

Így ennek a cikknek a végére értünk a „Java Reflection API” -ról. Ha többet szeretne megtudni,nézd meg a Edureka, egy megbízható online tanulási társaság. Az Edureka Java J2EE és SOA képzési és tanúsítási tanfolyamát arra tervezték, hogy mind az alapvető, mind a fejlett Java koncepciókra kiképezzen különféle Java keretrendszereket, például a Hibernate & Spring.

hogyan ellenőrizhető a palindrom a java-ban

Van egy kérdésünk? Kérjük, említse meg a cikk megjegyzés rovatában, és a lehető leghamarabb kapcsolatba lépünk Önnel.