Java Reflection API: Viss, kas jums jāzina



Šis raksts jūs iepazīstinās ar Java Reflection API, kā arī palīdzēs, kā Reflection darbojas Java un kas tas ir tieši ar demonstrāciju

Pārdomas ir klases skriešanas laika uzvedības pārbaudes vai modificēšanas process skriešanas laikā . Java Reflection API tiek izmantots, lai manipulētu ar klasi un tās dalībniekiem, kas izpildlaikā ietver laukus, metodes, konstruktoru utt. Šajā rakstā mēs detalizēti sapratīsim Java Reflection API.

Šajā rakstā galvenā uzmanība tiks pievērsta šādiem norādījumiem:





Tāpēc sāksim ar šiem norādījumiem šajā rakstā par Java Reflection API

Kur tiek izmantota Java Reflection API?

Reflection API galvenokārt tiek izmantots:



  • IDE (Integrētā attīstības vide) piem. Eclipse, MyEclipse, NetBeans utt.
  • Atkļūdotājs
  • Pārbaudes rīki utt.

Kas tad ir klase Java lang atspoguļo paketi?

Klase java.lang.reflect paketē?

Tālāk ir saraksts ar dažādām Java klasēm java.lang.package, lai ieviestu refleksiju

  • Lauks : Šo klasi izmanto, lai apkopotu deklaratīvu informāciju, piemēram, datu tipu, piekļuves modifikatoru, mainīgā nosaukumu un vērtību.
  • Metode : Šo klasi izmanto, lai apkopotu deklaratīvu informāciju, piemēram, piekļuves modifikatoru, atgriešanas veidu, nosaukumu, parametru tipus un metodes izņēmuma veidu.
  • Celtnieks : Šī klase tiek izmantota, lai apkopotu deklaratīvu informāciju, piemēram, piekļuves modifikatoru, konstruktora nosaukumu un parametru tipus.
  • Rediģēt : Šī klase tiek izmantota, lai apkopotu informāciju par konkrētu piekļuves modifikatoru.

Ļaujiet mums apskatīt Java Reflection API metodes,



Java.lang.Class izmantotās metodes

Metode

Apraksts

publiskā virkne getName ()

atgriež klases nosaukumu

public static Class forName (String className) izmet ClassNotFoundException

iteratīvā fibonacci c ++

ielādē klasi un atgriež klases klases atsauci.

public Object newInstance () izmet InstantiationException, IllegalAccessException

rada jaunu instanci.

publiskā Būla isInterface ()

pārbauda, ​​vai tā ir saskarne.

publiskais būla lielums ir Array ()

pārbauda, ​​vai tas ir masīvs.

publiskā būla vērtība irPrimitive ()

pārbauda, ​​vai tas ir primitīvi.

publiskā klase getSuperclass ()

atgriež augstākās klases klases atsauci.

publiskais lauks [] getDeclaredFields () iemet SecurityException

atgriež kopējo šīs klases lauku skaitu.

publiskā metode [] getDeclaredMethods () iemet SecurityException

atgriež kopējo šīs klases metožu skaitu.

public Constructor [] getDeclaredConstructors () iemet SecurityException

atgriež kopējo šīs klases konstruktoru skaitu.

publiskā metode getDeclaredMethod (virknes nosaukums, klase [] parametru tipi) izmet NoSuchMethodException, SecurityException

atgriež metodi klases instance.

Pārejam uz priekšu ar rakstu,

Kā iegūt klases klases objektu?

Ir 3 veidi, kā iegūt klases klases instanci. Tie ir šādi:

  • klases klases forName () metode
  • getClass () Objekta klases metode
  • . klases sintakse

klases klases forName () metode

  • tiek izmantots, lai dinamiski ielādētu klasi.
  • atgriež klases klases instanci.
  • Tas jāizmanto, ja zināt klases pilnībā kvalificēto nosaukumu. To nevar izmantot primitīviem tipiem.

Apskatīsim vienkāršo forName () metodes piemēru.

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

Izeja:

Vienkārši

Java Reflection: Object klases API getClass () metode

Tas atgriež klases klases instanci. Tas jālieto, ja zināt veidu. Turklāt to var izmantot kopā ar primitīviem.

class Simple {} klases tests {void printName (Object obj) {Class c = obj.getClass () System.out.println (c.getName ())} public static void main (String args []) {Simple s = new Vienkāršs () tests t = jauns tests () t.printNosaukums (-i)}}

Izeja:

Vienkārši

.Klases sintakse

Ja tips ir pieejams, bet nav neviena gadījuma, ir iespējams iegūt klasi, tipa nosaukumam pievienojot “.class”. To var izmantot arī primitīvajam datu tipam.

kas ir agregācija java
klases pārbaude {public static void main (String args []) {c klase = boolean.class System.out.println (c.getName ()) Class c2 = Test.class System.out.println (c2.getName ()) }}

Izeja:

būla

Pārbaude

Tagad turpināsim ar šo Java Reflection API rakstu

Java Reflection API izmantošanas priekšrocības un trūkumi

Java Reflection API izmantošanas priekšrocības

  • Paplašināmības funkcijas: Lietojumprogramma var izmantot ārējas, lietotāja definētas klases, izveidojot paplašināmības objektu gadījumus, izmantojot to pilnībā kvalificētos nosaukumus.
  • Atkļūdošanas un testēšanas rīki : Atkļūdotāji izmanto refleksijas īpašību, lai pārbaudītu privātos dalībniekus klasēs.

Java Reflection API izmantošanas trūkumi

  • Veiktspēja: Atstarojošām operācijām ir lēnāka veiktspēja nekā to neatstarojošajiem partneriem, un no tām vajadzētu izvairīties koda sadaļās, kuras bieži tiek lietotas lietojumam jutīgās lietojumprogrammās.
  • Iekšējā iedarbība: Atstarojošais kods pārtrauc abstrakcijas un tāpēc var mainīt uzvedību ar platformas jauninājumiem.

Tādējādi esam nonākuši pie šī raksta par “Java Reflection API” beigām. Ja vēlaties uzzināt vairāk,pārbaudiet Autors: uzticams tiešsaistes mācību uzņēmums Edureka. Edureka Java J2EE un SOA apmācības un sertifikācijas kurss ir paredzēts, lai apmācītu jūs gan galvenajiem, gan uzlabotajiem Java jēdzieniem kopā ar dažādiem Java ietvariem, piemēram, Hibernate & Spring.

Vai mums ir jautājums? Lūdzu, pieminējiet to šī raksta komentāru sadaļā, un mēs sazināsimies ar jums pēc iespējas ātrāk.