"¡Hola, amigo!"
"Ahora es el momento del evento principal. Nos familiarizaremos con la clase Class y tocaremos Reflection.
Como probablemente ya se dio cuenta, todo en Java es un objeto. ¿Y qué necesita un objeto? ¿Qué tiene cada objeto que define ¿de qué se trata?"
"¡Una clase!"
"¡Correcto! Bien hecho. Cada objeto tiene una clase. Pero volviendo a los objetos... Algunos objetos contienen completamente una entidad, mientras que otros simplemente ayudan a administrarla".
"Este último tipo incluye FileOutputStream y Thread . Cuando crea un objeto Thread , no se crea un nuevo hilo. La máquina virtual Java crea el hilo después de llamar al método start(). Este objeto simplemente ayuda a administrar el proceso".
"Lo mismo con FileOutputStream : el archivo se almacena en el disco y el sistema operativo administra el almacenamiento y el acceso. Pero podemos interactuar con él a través de objetos de archivo, una vez más con la ayuda de la máquina virtual Java".
"Sí, ya entiendo eso".
"Entonces, hay una clase especial llamada Clase para interactuar con las clases".
"Eso no fue difícil de adivinar".
"Sí. Cada vez que la máquina virtual Java carga una nueva clase en la memoria, crea un objeto Class, que puede usar para obtener información específica sobre la clase cargada".
"Cada clase y objeto está asociado con un « Objeto de clase »".
Ejemplo | Descripción |
---|---|
|
Obtiene el objeto Class de la clase Integer. |
|
Obtiene el objeto Class de la clase int. |
|
Obtiene el objeto Class de un objeto String. |
|
Obtiene el objeto Class del objeto Object. |
"¡Guau! ¡Qué interesante!"
"¿Recuerdas que la palabra clase es una palabra clave en Java y no se puede usar como nombre de variable?"
"Oh, sí, lo sé, lo sé. Simplemente lo olvidé".
"¿Ya has usado el objeto Clase en alguna parte?"
"Sí, lo usamos cuando escribimos nuestra propia implementación del método equals".
"Sí, puede usar el método getClass() para probar si los objetos tienen la misma clase".
"¿Y qué puedes hacer con este objeto?"
"Bueno, muchas cosas:"
codigo Java | Descripción |
---|---|
|
Obtiene el nombre de la clase. |
|
Obtiene una clase por nombre. |
|
Compara clases de objetos. |
"Interesante, pero no tan genial como pensaba".
"¿Quieres que sea genial? También está Reflection . Reflection es genial".
"¿Qué es la reflexión ?"
La reflexión es la capacidad de una clase para obtener información sobre sí misma. Java tiene clases especiales: Field y Method , que son similares a la clase Class para las clases. Así como los objetos Class le permiten obtener información sobre una clase, los objetos Field brindan información sobre un campo. , y el objeto Method proporciona información sobre un método. Y mira lo que puedes hacer con ellos:"
codigo Java | Descripción |
---|---|
|
Obtiene una lista de objetos Class para las interfaces de la clase List |
|
Obtiene el objeto Class de la clase principal de la clase String. |
|
Obtiene una lista de los métodos de la clase List |
|
Crea una nueva cadena |
|
Obtiene el método de longitud de la clase String y lo llama en String s |
"¡Guau! ¡Eso sí que es genial!"