Donar $20 Donar $50 Donar $100 Donar mensualmente
 


Enviar respuesta 
 
Calificación:
  • 1 votos - 5 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
Reflection
Autor Mensaje
Imakuni Sin conexión
Presidente del CEIT
Did you know that cashews come...
********

Ing. en Sistemas
Facultad Regional Córdoba

Mensajes: 6.968
Agradecimientos dados: 112
Agradecimientos: 119 en 77 posts
Registro en: Jul 2008
Mensaje: #1
Reflection
Tiene algun sentido usar Reflection (en java, en este caso), cuando conozco el metodo que deba utilizar???

Osea, por ejemplo:
(objeto es del tipo Class si mal no recuerdo)

objeto = (tipoObjeto) clase.newInstance();
Class tiposParam[] = {BigDecimal.class};
Method metCargaDatos;
metCargaDatos = clase.getMethod("Metodoloco", tiposParam);
[...]
resultado = (BigDecimal) metCargaDatos.invoke(objeto, );




Osea, puede haber un caso en el que sea util usarlo sabiendo que mensaje debo mandarle??? (no puedo solucionarlo con una interfaz y ya?)

Gracias????
07-07-2009 10:43
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
ebric Sin conexión
Presidente del CEIT
nono ortiva
********

Análisis de Sistemas
Facultad Regional Buenos Aires

Mensajes: 3.130
Agradecimientos dados: 2
Agradecimientos: 17 en 12 posts
Registro en: Aug 2008
Mensaje: #2
Re: Reflection
Si te entendi bien, un caso podria ser el DataBinding entre un objeto X y un control de la UI, por ejemplo.

En Java no se bien como sera, pero por ejemplo en WinForms (C#.NET) para hacer un construir un DataBinding entre un objecto (empresa) y un TextBox (razonSocialTextBox), por ejemplo, haces:



razonSocialTextBox.DataBindings.Add("Text", empresa, "RazonSocial");




Lo que hace por adentro, es invocar al getter RazonSocial de empresa, mediante Reflection, y le pasa como parametro el Text de razonSocialTextBox, tambien por Refllection.

Es el amor el responsable, única guía del espíritu imperfecto
07-07-2009 11:08
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
leandrodg Sin conexión
Il Capo Cannoniere
Lost Admin
**********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 2.434
Agradecimientos dados: 12
Agradecimientos: 39 en 14 posts
Registro en: Mar 2008
Facebook Twitter YouTube
Mensaje: #3
Re: Reflection
No tiene demasiado sentido invocar el motor de Reflection si conocés el tipo...

Un caso donde sí tiene sentido usarlo es como dicen arriba para hacer binding de datos, si querés hacer algo genérico que pueda vincular una propiedad (o un getter/setter en Java) a partir de un string... y sí, para eso vale usar Reflection. Internamente por ejemplo Hibernate y otros ORM utilizan reflection para leer y escribir en propiedades de las entidades aprovechando los datos contenidos en los Xml o Annotations de configuración.

Pero si conocés que la clase tiene un método setPropiedad... no veo ningún sentido en usar Reflection. Ahora si no conocieras la interfaz y recibieras un object que NO pudieras castear a un tipo porque NO SABES de qué tipo es... ahí vale. De cualquier manera hay casos en los cuales hay una solución más de diseño que el uso de Reflection. La pregunta a hacerte es "¿por qué recibo un objeto del cual no conozco sus métodos?". Si no es para aplicar una solución genérica a un problema (como el databinding), es poco probable que necesites usar Reflection (al menos para esto de leer métodos... hay lugares donde yo lo uso porque el problema está asociado directamente a la metadata de una clase y en esos casos es razonable utilizar Reflection).

LeandroDG

Mi blog: http://www.logue.com.ar/blog
Ingeniero en Sistemas
13-07-2009 21:25
Visita su sitio web Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Imakuni Sin conexión
Presidente del CEIT
Did you know that cashews come...
********

Ing. en Sistemas
Facultad Regional Córdoba

Mensajes: 6.968
Agradecimientos dados: 112
Agradecimientos: 119 en 77 posts
Registro en: Jul 2008
Mensaje: #4
Re: Reflection
Al final habia entendido mal. El string lo recibe de una db, al igual que otras cosas, asique tenia todo el sentido del mundo :P.


Muchas gracias por las respuestas!!!
14-07-2009 13:15
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
leandrodg Sin conexión
Il Capo Cannoniere
Lost Admin
**********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 2.434
Agradecimientos dados: 12
Agradecimientos: 39 en 14 posts
Registro en: Mar 2008
Facebook Twitter YouTube
Mensaje: #5
Re: Reflection
Ahí tiene sentido =)

Yo por ej. armé un scheduler para poder ejecutar asincrónico un método y también, guardo la clase, el nombre del método y el mensaje que recibe en la base de datos. Y luego mi servicio de scheduling va leyendo eso y ejecutándolos. Obviamente eso usa reflection =)

LeandroDG

Mi blog: http://www.logue.com.ar/blog
Ingeniero en Sistemas
14-07-2009 23:58
Visita su sitio web Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)



    This forum uses Lukasz Tkacz MyBB addons.