Lo Java mecanismo de reflexión?

mecanismo de reflexión de Java es una característica importante del lenguaje Java. Antes de aprender la reflexión de Java, debemos primero entender los dos conceptos, compilar y ejecutar.

Se refiere a compilar el código fuente para el compilador para procesar un archivo de computadora que se pueden realizar . Ese es el proceso de código Java compilado en archivos de clase en Java. Compilar acaba de hacer alguna traducción, y no poner el código en la memoria en funcionamiento, pero sólo el código como operaciones de texto, tales como la comprobación de errores.

Es para ejecutar los archivos compilados a la computadora para llevar a cabo hasta el final de la ejecución del programa . El llamado período previo a poner la aplicación del código en el disco en la memoria.

mecanismo de reflexión de Java está en el estado de funcionamiento, de cualquier clase, se dan a conocer a todas las propiedades y métodos de esta clase; para cualquier objeto, son capaces de llamar a cualquiera de sus métodos y propiedades; Este acceso dinámico a la información y el objeto llamada a un método dinámico la función se denomina mecanismo de reflejo del lenguaje Java . En términos simples, se refiere al programa de reflexión puede obtener su información en tiempo de ejecución. En Java, sólo para nombrar una clase dada, se puede obtener toda la información a la clase por la reflexión.

mecanismo de reflexión de Java ha sido ampliamente utilizado en programas de servidor y middleware. En el lado del servidor, el cliente a menudo tienen que solicitar una invocación dinámica de un objeto método particular. Además, la realización de middleware ORM, el uso de la reflexión de Java puede leer todos los atributos de un JavaBean ninguna, oa la cesión de propiedad.
Aquí Insertar imagen Descripción

mecanismo de reflexión de Java proporciona principalmente las siguientes funciones, que se encuentran en el paquete java.lang.reflect.

	在运行时判断任意一个对象所属的类。
	
	在运行时构造任意一个类的对象。
	
	在运行时判断任意一个类所具有的成员变量和方法。
	
	在运行时调用任意一个对象的方法。
	
	生成动态代理。

Conocer las propiedades y métodos de una clase, primero debe llegar a la clase de objeto archivo de código de bytes. Cuando el acceso a la información y similares, es método usado en la clase de la clase. Así que primero adquirida correspondiente a cada código de bytes del archivo de clase de tipo de objeto (.class).

Como todos sabemos, todas las clases de Java heredan la clase de objeto que define un método getClass () en la clase Object, que devuelve el mismo objeto de tipo Clase de. Por ejemplo, el siguiente código de ejemplo:

Class labelCls = label1.getClass();    // label1为 JLabel 类的对象

El uso de la clase de objeto puede acceder labelCls Clase labelCls la información de descripción del objeto, y la información de la clase JLabel clase base del objeto.

Información general de reflexión accesible
Aquí Insertar imagen Descripción

Como se muestra arriba, llamando getFields () y getMethods () será adquirida secuencialmente para los campos y variables de autoridad pública cuando el método comprendiendo entonces hereda de una superclase para las variables y métodos miembros. A través de getDeclareFields () y getDeclareMethod () Obtiene solamente variables miembro y los métodos definidos en esta clase.

Ventajas y desventajas de mecanismo de reflexión de Java

Ventajas:
acceso dinámico pueden ser instancias de tiempo de ejecución de una clase, en gran medida la mejora de la flexibilidad y la escalabilidad del sistema.

En combinación con el compilador dinámico Java puede lograr muy potente.

compilador de lenguaje Java para esta primera carrera, y nos permite crear fácilmente el código flexible que puede ser montado en tiempo de ejecución, sin la necesidad de establecer vínculos entre los componentes de código fuente, orientado a objetos, más fácil.

Desventajas:
la reflexión se consumen algunos recursos del sistema, la reflexión por lo que si no es necesario para crear dinámicamente un objeto, no es necesario;

La reflexión puede ser ignorada cuando se llama a las comprobaciones de permisos método, el acceso a los métodos privados y propiedades de esta clase, por lo que podría socavar la encapsulación de clase y dar lugar a problemas de seguridad.

Publicados 457 artículos originales · ganado elogios 94 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/weixin_45743799/article/details/104727853
Recomendado
Clasificación