API de Java Reflection: todo lo que necesita saber



Este artículo le presentará la API de Java Reflection y también le ayudará a saber cómo funciona Reflection en Java y qué es exactamente con la demostración.

Reflexión es un proceso de examinar o modificar el comportamiento en tiempo de ejecución de una clase en tiempo de ejecución . API de reflexión de Java se utiliza para manipular la clase y sus miembros que incluyen campos, métodos, constructor, etc. en tiempo de ejecución. En este artículo, entenderíamos la API de reflexión de Java en detalle.

Este artículo se centrará en los siguientes consejos:





Así que comencemos con estos consejos en este artículo sobre la API de reflexión de Java

¿Dónde se utiliza la API de Java Reflection?

La API de Reflection se utiliza principalmente en:



  • IDE (entorno de desarrollo integrado) p. Ej. Eclipse, MyEclipse, NetBeans, etc.
  • Depurador
  • Herramientas de prueba, etc.

Entonces, ¿qué es el paquete Class in Java lang reflect?

¿Clase en el paquete java.lang.reflect?

A continuación se muestra una lista de varias clases de Java en java.lang.package para implementar la reflexión

  • Campo : Esta clase se utiliza para recopilar información declarativa como tipo de datos, modificador de acceso, nombre y valor de una variable.
  • Método : Esta clase se utiliza para recopilar información declarativa como el modificador de acceso, el tipo de retorno, el nombre, los tipos de parámetros y el tipo de excepción de un método.
  • Constructor : Esta clase se utiliza para recopilar información declarativa como el modificador de acceso, el nombre y los tipos de parámetros de un constructor.
  • Editar : Esta clase se utiliza para recopilar información sobre un modificador de acceso en particular.

No, echemos un vistazo a los métodos de la API de reflexión de Java,



Métodos utilizados en java.lang.Class

Método

Descripción

public String getName ()

devuelve el nombre de la clase

La clase pública estática forName (String className) arroja ClassNotFoundException

carga la clase y devuelve la referencia de la clase Class.

public Object newInstance () lanza InstantiationException, IllegalAccessException

crea una nueva instancia.

public boolean isInterface ()

comprueba si es interfaz.

public boolean isArray ()

comprueba si es una matriz.

public boolean isPrimitive ()

comprueba si es primitivo.

getSuperclass clase pública ()

devuelve la referencia de clase de superclase.

public Field [] getDeclaredFields () arroja SecurityException

devuelve el número total de campos de esta clase.

El método público [] getDeclaredMethods () arroja SecurityException

devuelve el número total de métodos de esta clase.

public Constructor [] getDeclaredConstructors () lanza SecurityException

devuelve el número total de constructores de esta clase.

java es una relación

El método público getDeclaredMethod (String name, Class [] parameterTypes) arroja NoSuchMethodException, SecurityException

devuelve la instancia de la clase de método.

Sigamos adelante con el artículo,

¿Cómo obtener el objeto de la clase Class?

Hay 3 formas de obtener la instancia de la clase Class. Son los siguientes:

  • método forName () de la clase Class
  • método getClass () de la clase Object
  • la sintaxis .class

método forName () de la clase Class

  • se utiliza para cargar la clase dinámicamente.
  • devuelve la instancia de la clase Class.
  • Debe usarse si conoce el nombre completo de la clase. No se puede usar para tipos primitivos.

Veamos el ejemplo simple del método forName ().

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

Salida:

Simple

Reflexión de Java: método API getClass () de la clase Object

Devuelve la instancia de la clase Class. Debe utilizarse si conoce el tipo. Además, se puede utilizar con primitivas.

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 Prueba simple () t = nueva Prueba () t.printName (s)}}

Salida:

Simple

La sintaxis .class

Si un tipo está disponible pero no hay una instancia, entonces es posible obtener una clase agregando '.class' al nombre del tipo. También se puede usar para tipos de datos primitivos.

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

Salida:

booleano

Prueba

Ahora continuemos con este artículo de la API de reflexión de Java

Ventajas y desventajas del uso de la API de reflexión de Java

Ventajas de utilizar la API de reflexión de Java

  • Funciones de extensibilidad: Una aplicación puede hacer uso de clases externas definidas por el usuario creando instancias de objetos de extensibilidad usando sus nombres completos.
  • Herramientas de prueba y depuración : Los depuradores utilizan la propiedad de reflexión para examinar miembros privados en clases.

Desventajas de usar la API de reflexión de Java

  • Sobrecarga de rendimiento: Las operaciones reflectantes tienen un rendimiento más lento que sus contrapartes no reflectantes y deben evitarse en secciones de código que se llaman con frecuencia en aplicaciones sensibles al rendimiento.
  • Exposición de internos: El código reflectante rompe las abstracciones y, por lo tanto, puede cambiar el comportamiento con las actualizaciones de la plataforma.

Por lo tanto, hemos llegado al final de este artículo sobre 'API de reflexión de Java'. Si desea obtener más información,revisar la por Edureka, una empresa de aprendizaje en línea de confianza. El curso de certificación y capacitación Java J2EE y SOA de Edureka está diseñado para capacitarlo en conceptos básicos y avanzados de Java junto con varios marcos de Java como Hibernate y Spring.

Tienes una pregunta para nosotros? Menciónelo en la sección de comentarios de este artículo y nos comunicaremos con usted lo antes posible.