Java Reflection -sovellusliittymä: kaikki mitä sinun tarvitsee tietää



Tämä artikkeli tutustuttaa sinut Java Reflection -sovellusliittymään ja auttaa myös kuinka Reflection toimii Javassa ja mitä se on tarkalleen esittelyn avulla

Heijastus on luokan ajoaikakäyttäytymisen tutkiminen tai muuttaminen ajon aikana . Java Reflection -sovellusliittymä käytetään manipuloimaan luokkaa ja sen jäseniä, jotka sisältävät kenttiä, menetelmiä, konstruktoria jne. ajon aikana. Tässä artikkelissa ymmärrämme Java Reflection -sovellusliittymän yksityiskohtaisesti.

c ++ mikä on nimitila

Tässä artikkelissa keskitytään seuraaviin viitteisiin:





Joten aloitetaan näiden viitteiden käyttö tässä Java Reflection -sovellusliittymän artikkelissa

Missä Java Reflection -sovellusliittymää käytetään?

Reflection-sovellusliittymää käytetään pääasiassa:



  • IDE (integroitu kehitysympäristö) esim. Eclipse, MyEclipse, NetBeans jne.
  • Virheen korjaaja
  • Testityökalut jne.

Joten mikä on Class Java Java heijastuspaketti?

Luokka java.lang.reflect-paketissa?

Seuraavassa on luettelo Java-luokista java.lang.package-sovelluksessa pohdinta-

  • Ala : Tätä luokkaa käytetään keräämään vakuuttavia tietoja, kuten tietotyyppi, pääsymuuttuja, muuttujan nimi ja arvo.
  • Menetelmä : Tätä luokkaa käytetään keräämään vakuuttavia tietoja, kuten pääsynmuuttaja, palautustyyppi, nimi, parametrityypit ja menetelmän poikkeustyyppi.
  • Rakentaja : Tätä luokkaa käytetään keräämään vakuuttavia tietoja, kuten pääsyn muokkaus, konstruktorin nimi ja parametrityypit.
  • Muokata : Tätä luokkaa käytetään tietojen keräämiseen tietystä pääsynmuuttajasta.

Katsokaamme Java Reflection -sovellusliittymän menetelmiä,



Java.lang.Classissa käytetyt menetelmät

Menetelmä

Kuvaus

public String getName ()

palauttaa luokan nimen

public static Class forName (String className) heittää ClassNotFoundExceptionin

lataa luokan ja palauttaa luokan luokan viitteen.

public Object newInstance () heittää InstantiationException, IllegalAccessException

luo uuden esiintymän.

julkinen totuusarvo onInterface ()

tarkistaa, onko se käyttöliittymä.

julkinen Boolen isArray ()

tarkistaa, onko se matriisi.

public boolean isPrimitive ()

tarkistaa, onko se alkeellista.

julkinen luokka getSuperclass ()

palauttaa yliluokan luokan viitteen.

public Field [] getDeclaredFields () heittää SecurityExceptionin

palauttaa tämän luokan kenttien kokonaismäärän.

public Method [] getDeclaredMethods () heittää SecurityExceptionin

palauttaa tämän luokan menetelmien kokonaismäärän.

public Constructor [] getDeclaredConstructors () heittää SecurityExceptionin

palauttaa tämän luokan rakentajien kokonaismäärän.

public Method getDeclaredMethod (String name, Class [] parametrityypit) heittää NoSuchMethodException, SecurityException

palauttaa metodiluokan esiintymän.

Siirrytään eteenpäin artikkelin kanssa,

Kuinka saada Class-luokan kohde?

On 3 tapaa saada Class-luokan esiintymä. Ne ovat seuraavat:

  • forName () -luokan luokan luokka
  • getClass () -menetelmä Object-luokassa
  • .luokan syntaksista

forName () -luokan luokan luokka

  • käytetään luokan dynaamiseen lataamiseen.
  • palauttaa Class-luokan esiintymän.
  • Sitä tulisi käyttää, jos tiedät luokan täysin hyväksytyn nimen. Tätä ei voida käyttää primitiivisiin tyyppeihin.

Katsotaanpa yksinkertainen esimerkki forName () -metodista.

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

Tuotos:

Yksinkertainen

Java Reflection: Object-luokan API getClass () -menetelmä

Se palauttaa luokan luokan esiintymän. Sitä tulisi käyttää, jos tiedät tyypin. Lisäksi sitä voidaan käyttää primitiivien kanssa.

class Simple {} class Test {void printName (Object obj) {Class c = obj.getClass () System.out.println (c.getName ())} public staattinen void main (String args []) {Simple s = new Yksinkertainen () testi t = uusi testi () t.printNimi (nimet)}}

Tuotos:

Yksinkertainen

.Luokan syntaksia

Jos tyyppiä on käytettävissä, mutta ei ole esiintymää, on mahdollista saada luokka liittämällä “.class” tyypin nimeen. Sitä voidaan käyttää myös primitiivisiin tietotyyppeihin.

luokan testi {public static void main (String args []) {Class c = looginen.luokka System.out.println (c.getName ()) Class c2 = Test.class System.out.println (c2.getName ()) }}

Tuotos:

looginen

Testata

Jatka nyt tämän Java Reflection -sovellusliittymän artikkelin kanssa

Java Reflection -sovellusliittymän käytön edut ja haitat

Java Reflection -sovellusliittymän käytön edut

  • Laajennettavuusominaisuudet: Sovellus voi käyttää ulkoisia, käyttäjän määrittelemiä luokkia luomalla laajennettavuusobjektien esiintymiä käyttämällä niiden täysin päteviä nimiä.
  • Virheenkorjaus ja testaustyökalut : Debuggaajat käyttävät heijastusominaisuutta tutkiakseen yksityisiä jäseniä luokissa.

Java Reflection -sovellusliittymän käytön haitat

  • Suorituskyky: Heijastavien operaatioiden suorituskyky on hitaampi kuin heijastamattomien vastaavien, ja niitä tulisi välttää koodiosissa, joita kutsutaan usein suorituskykyherkissä sovelluksissa.
  • Sisäisten altistuminen: Heijastava koodi rikkoo abstraktit ja voi siksi muuttaa käyttäytymistä alustan päivityksillä.

Siksi olemme päässeet tämän artikkelin 'Java Reflection API' -sivulle. Jos haluat oppia lisää,tutustu Edureka, luotettava verkko-oppimisyritys. Edurekan Java J2EE- ja SOA-koulutus- ja sertifiointikurssit on suunniteltu kouluttamaan sekä ydin- että edistyneitä Java-konsepteja sekä erilaisia ​​Java-kehyksiä, kuten Hibernate & Spring.

Onko sinulla kysymys meille? Mainitse se tämän artikkelin kommenttiosassa ja otamme sinuun yhteyttä mahdollisimman pian.