domingo, 26 de septiembre de 2010

Reflection

Reflexión (reflection) es un framework habitualmente poco conocido. Este framework nos permite preguntar al código por si mismo.

Aunque su uso no sea muy conocido, a nivel interno componentes como Hibernate lo usan.

Un ejemplo más cercano es la programación de servlets dentro de una pagina web dinámica.

En el fichero web.xml, podemos indicar a reflection como “generar la clase”.


Un ejemplo de lo anterior es el siguiente:


<servlet>

<servlet-name> Nombre </servlet-name>

<servlet-class> Nombre fichero java</servlet-class>

<servlet>

<servlet-mapping>

<servlet-name> Nombre </servlet-name>

<servlet-pattern> Nombre fichero java</servlet-pattern>

<servlet-mapping>


Reflecttion se encuentra dentro de java.lang.Object con lo que todos los objetos pueden hacer uso de él.

Reflection nos proporciona los siguientes métodos:


public String getName()

public Class getType()

public Object get(Object obj)

public void set (Object obj, Object value)


public Class[] getParameterTypes()

public Cass getReturnType()


Si bien mediante estos métodos reflexión solo obtiene los campos y métodos públicos de una clase. A través de los métodos constructores, getters y setters podríamos obtener información suficiente para reconstruir la clase o bien interactuar con ella con la suficiente seguridad de la corrección.


Más información:

http://www.javadabbadoo.org/cursos/infosintesis.net/javaseav/paqlangreflect/examinarobjetos/index.html


http://download.oracle.com/javase/tutorial/javabeans/introspection/index.html


http://download.oracle.com/javase/tutorial/reflect/index.html





No hay comentarios:

Publicar un comentario