23.02.2017 Views

Java

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

250<br />

Apéndice 1. Reflexión<br />

¿Qué es la reflexión?<br />

<strong>Java</strong> es un lenguaje reflexivo. Eso significa que los programas <strong>Java</strong><br />

pueden reflejar su propia ejecución y estructura. Los metaobjetos del<br />

sistema se pueden reificar como objetos ordinarios, que pueden ser<br />

consultados e inspeccionados como cualquier otro objeto. Los<br />

metaobjetos de <strong>Java</strong> son: clases, métodos, atributos, constructores,<br />

modificadores y paquetes. Este procedimiento de reflexión también es<br />

conocido como introspección. <strong>Java</strong> ofrece soporte limitado para la<br />

modificación de los objetos mediante reflexión. Permite modificar<br />

atributos, estáticos y de instancia, esto se conoce como intercesión. A<br />

un programa que manipula otro se lo llama metaprograma.<br />

nivel<br />

meta<br />

getclass<br />

nivel<br />

de dominio<br />

Figura 1. Aquí vemos la transición entre el mundo de los<br />

objetos del dominio y el de los metaobjetos.<br />

Behavioral reflection<br />

Es interesante tener en cuenta que con este nombre se conoce a un tipo de reflexión que permite realizar<br />

la consulta y posterior modificación del comportamiento del sistema. Dicho de otra forma, permite<br />

inspeccionar qué hacen los métodos y modificarlos en tiempo de ejecución. Lamentablemente, <strong>Java</strong><br />

solamente soporta la primera funcionalidad, con la que podemos obtener los métodos y mirarlos, pero<br />

no podemos modificar su bytecode para cambiar su funcionamiento.<br />

www.redusers.com<br />

www.FreeLibros.me

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!