¿Principio del mecanismo de reflexión JAVA?
Hay dos formas principales de identificación de tipos en tiempo de ejecución (Run-timeTypeIdentification, RTTI). Una es que ya conocemos todos los tipos en tiempo de compilación y en tiempo de ejecución, y la otra es la poderosa "reflexión". " "mecanismo.
Para comprender cómo funciona RTTI en Java, primero debe saber cómo se representa la información de tipo en tiempo de ejecución. Este trabajo lo realiza el "objeto de clase", que contiene información relacionada con la clase. Las clases son una parte importante del programa. Cada clase tiene un objeto Class. Cada vez que se escribe y compila una nueva clase, se genera un objeto Class, que se guarda en un archivo .class con el mismo nombre. En tiempo de ejecución, cuando queremos generar un objeto de esta clase, la Máquina Virtual Java (JVM) que ejecuta este programa confirmará si el objeto Clase de esta clase se ha cargado. Si no se ha cargado, la JVM buscará el. Archivo .class basado en el nombre de la clase y cárguelo una vez que el objeto Clase de esta clase se carga en la memoria, se utiliza para crear todos los objetos de esta clase. Hay tres formas generales de RTTI:
1. Conversión de tipo tradicional. Por ejemplo, "(Apple)Fruit", RTTI garantiza la corrección de la conversión de tipos. Si se realiza una conversión de tipos incorrecta, se generará una excepción ClassCastException.
2. Obtener el tipo de objeto a través del objeto Clase. Por ejemplo
Classc=Class.forName("Apple");
Objecto=c.newInstance();
3 A través de la palabra clave instancia de o Clase. El método isInstance() se puede utilizar para determinar si un objeto pertenece a una instancia de un tipo específico. Para ser precisos, debe ser instanciade/Class.isInstance() se puede utilizar para determinar si un objeto pertenece a una instancia de. una clase específica y todas sus clases base. Esto es lo mismo que igual ()/== es diferente. Se utilizan para comparar si dos objetos pertenecen a instancias de la misma clase, sin considerar la relación de herencia.
Reflexión
Si no se conoce el tipo de un objeto, se puede obtener a través de RTTI, pero la premisa es que el tipo debe conocerse en el momento de la compilación para que RTTI pueda ser utilizado para identificarlo. Es decir, en tiempo de compilación, el compilador debe conocer todas las clases procesadas a través de RTTI.
El uso del mecanismo de reflexión no requiere esta limitación. Se utiliza principalmente en dos situaciones. La primera es la "programación basada en componentes", que es algún tipo de desarrollo rápido de aplicaciones basado en (RAD). ) herramienta de creación de aplicaciones para construir proyectos. Este es ahora el método de programación visual más común. Usted crea un programa arrastrando íconos que representan diferentes componentes al tablero y luego configurando los valores de propiedad de los componentes para configurarlos. Esta configuración requiere que los componentes sean instanciables y expongan parte de su información para que los programadores puedan leer y establecer los valores de los componentes. Cuando se trata de componentes en tiempo GUI, los detalles de los métodos relevantes también deben exponerse para que el entorno RAD pueda ayudar a los programadores a anular estos métodos para manejar eventos. Aquí, el mecanismo de reflexión se utiliza para verificar los métodos disponibles y devolver el nombre del método. Java proporciona una arquitectura de programación basada en componentes a través de JavaBeans.
En el segundo caso, otra motivación para obtener información de clases en tiempo de ejecución es proporcionar la capacidad de crear y ejecutar objetos en plataformas remotas a través de la red. Esto se llama invocación remota (RMI), que permite que un programa Java pase objetos a través de múltiples máquinas. Changping Town Java Training cree que esta capacidad paso a paso ayudará a los desarrolladores a realizar algunas tareas computacionalmente intensivas y hacer un uso completo de la computadora. Recursos para mejorar la velocidad de carrera.