Java - Reflectividad en Java

 
Vista:

Reflectividad en Java

Publicado por César (1 intervención) el 01/01/2008 16:42:22
Hola,

Mi duda es la siguiente:

Estoy realizando una aplicación con reflectividad, y quiero que en función del tipo del dato que tenga dentro de un objeto de tipo java.lang.reflect.Field llamar a un método u otro, teniéndo estos métodos la misma signatura a excepción del tipo del parámetro que reciben. Es decir, sería un Visitor.

cargar :: Field field

foo(field.getType())

foo(String)

foo(Enu m)

Es decir, si field tuviera dentro un objeto de tipo String, quiero que llame a la función que recibe un String.

El problema es que getType() me devuelve un Class y getGenericType() un Type.

Ojalá puedan ayudarme. Todas las ideas serán bien recibidas :).

Saludos y muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Reflectividad en Java

Publicado por putahostia (69 intervenciones) el 02/01/2008 13:27:10
Intenta:
if(field instanceof LA_CLASE_QUE_DEVUELVE_getType()){ ... }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Reflectividad en Java

Publicado por Pablo (2 intervenciones) el 03/01/2008 14:40:05
La respuesta que te dieron es correcta, pero tambien podrías optar por esta manera simpatica de hacerlo:

if ("class java.util.Date".equalsIgnoreCase(metodo
.getReturnType().toString())) {...}

if ("class java.lang.String"
.equalsIgnoreCase(metodo.getReturnType()
.toString())) {...}

Espero puedas resolverlo !!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar