Diferencia entre revisiones de «API Reflection»

m (Texto reemplazado: «Category:» por «Categoría:»)
 
(No se muestran 9 ediciones intermedias de 6 usuarios)
Línea 1: Línea 1:
{{Desarrollo}}{{Ficha Software
+
 
|nombre='''API Reflection'''
+
{{Ficha Software
 +
|nombre= API Reflection
 
|familia=
 
|familia=
|imagen=
+
|imagen=APIrefle.jpeg‎
 
|tamaño=
 
|tamaño=
|descripción=Herramienta muy poderosa que permite realizar, en lenguaje de programación Java, cosas que en otros lenguajes es imposible.
+
|descripción= Interfaz de programación de aplicaciones
 
|imagen2=
 
|imagen2=
 
|tamaño2=
 
|tamaño2=
 
|descripción2=
 
|descripción2=
|creador=
+
|creador= Creadores del lenguaje Java
|desarrollador=
+
|desarrollador=  
 
|diseñador=
 
|diseñador=
 
|modelo de desarrollo=
 
|modelo de desarrollo=
Línea 21: Línea 22:
 
|premios=
 
|premios=
 
|web=
 
|web=
}}
+
}}'''API Reflection.''' Herramienta que representa o refleja, las clases, interfaces y objetos de la actual máquina virtual de [[Java]].  
'''API Reflection'''. Herramienta muy poderosa que permite realizar, en lenguaje de programación [[Java]], cosas que en otros lenguajes es imposible.  
+
== Ventajas ==  
 
+
Permite, en tiempo de ejecución, acceder desde un programa a absolutamente toda la información de sí mismo, así como de la [[API del lenguaje]] y de las librerías a las que tenga acceso. Y no sólo permite acceder a dicha información, sino también manipularla.
== Uso ==
+
Permite invocar dinámicamente métodos (incluidos constructores) de otra clase u objeto. De esta forma se puede hacer cosas que van desde saltar los modificadores de acceso de una definición de clase, hasta hacer que dos objetos intercambien [[Información de atributo privado|información de atributos privados]] sin que medien métodos ''[[Método setter|setter]]'' .
A pesar de su potencial, es un [[API]] bastante desconocido, sobre todo para los principiantes en el mundo de la programación con [[Java]].
+
== Desventajas ==  
 
+
Esta API es algo compleja, según los estándares de la propia [[API (Java)|API]] de Java. Además, el hecho de trabajar con objetos dinámicamente en este código, hace que el control de errores en tiempo de compilación no funcione en muchas ocasiones; y que el control de errores en tiempo de ejecución se complique también en cierta medida.
== Incovenientes ==
+
== Funciones ==
Un buen diseño es muy importante en cualquier programa, para ello se utiliza [[herencia]], [[interfaces]], etc. Sin embargo, la infinita variedad de problemas a los que nos podemos tener que enfrentar, hace que estas técnicas no siempre sean suficientes para cumplir los propósitos.
+
 
+
*Determina la clase de un objeto.
== Ver además ==
+
*Obtiene información acerca de [[Modificador de clase|modificadores de una clase]], campos, métodos, constructores y superclases.
*[[Java Persistence API]]
+
*Obtiene y establece el valor del campo de un objeto, incluso si el nombre del campo es desconocido para el programa hasta el tiempo de ejecución.
 
+
*Crea una nueva [[Matriz|matriz]], cuyo tamaño y tipo de componente no se conocen hasta el tiempo de ejecución, y modifica los componentes de la matriz.
== Referencia ==
+
== Fuentes ==
*[http://www.javahispano.org javahispano.org]
+
*[http://translate.google.com.cu/translate?hl=es&sl=en&u=http://www.iam.ubc.ca/guides/javatut99/reflect/index.html&ei=NzfzTqKIJ4K3hQfKh5HWAQ&sa=X&oi=translate&ct=result&resnum=4&ved=0CEAQ7gEwAw&prev=/search%3Fq%3DDefinir:%2BAPI%2Breflection%26hl%3Des%26client%3Dfirefox-a%26hs%3DtCk%26rls%3Dorg.mozilla:es-ES:official%26prmd%3Dimvns La API de reflexión]
*[http://www.creationexus.tk creationexus.tk]
+
*[http://omniumpotentior.wordpress.com/2009/04/07/usando-la-api-de-reflexion-de-java/ Omnium potentior]
 
+
[[Categoría:Aplicaciones_informáticas]][[Categoría:Software]]
[[Category:Informática]] [[Category:Metodologías_de_desarrollo_de_software]]
 

última versión al 04:02 16 ago 2019

API Reflection
Información sobre la plantilla
APIrefle.jpeg
Interfaz de programación de aplicaciones
CreadorCreadores del lenguaje Java

API Reflection. Herramienta que representa o refleja, las clases, interfaces y objetos de la actual máquina virtual de Java.

Ventajas

Permite, en tiempo de ejecución, acceder desde un programa a absolutamente toda la información de sí mismo, así como de la API del lenguaje y de las librerías a las que tenga acceso. Y no sólo permite acceder a dicha información, sino también manipularla. Permite invocar dinámicamente métodos (incluidos constructores) de otra clase u objeto. De esta forma se puede hacer cosas que van desde saltar los modificadores de acceso de una definición de clase, hasta hacer que dos objetos intercambien información de atributos privados sin que medien métodos setter .

Desventajas

Esta API es algo compleja, según los estándares de la propia API de Java. Además, el hecho de trabajar con objetos dinámicamente en este código, hace que el control de errores en tiempo de compilación no funcione en muchas ocasiones; y que el control de errores en tiempo de ejecución se complique también en cierta medida.

Funciones

  • Determina la clase de un objeto.
  • Obtiene información acerca de modificadores de una clase, campos, métodos, constructores y superclases.
  • Obtiene y establece el valor del campo de un objeto, incluso si el nombre del campo es desconocido para el programa hasta el tiempo de ejecución.
  • Crea una nueva matriz, cuyo tamaño y tipo de componente no se conocen hasta el tiempo de ejecución, y modifica los componentes de la matriz.

Fuentes