Java - Carga de clases en RMI

 
Vista:

Carga de clases en RMI

Publicado por Jorge García (2 intervenciones) el 27/08/2007 12:54:56
Hola a tod@s,

estoy haciendo una aplicación en RMI y tengo un problemilla. Tengo un cliente que envia un string con el nombre de una clase elegida por el usuario, el servidor recoge el string y crea una instancia para despues usar ciertos metodos de esa clase. Para instanciar la clase estoy usando el método forName del objeto Class, el problema que tengo es que para poder usar los métodos he de hacer un casting explicito de la clase y esto no me vale pues no se en cada momento que clase estoy recibiendo. ¿Alguien sabe como puedo automatizar esto? Aquí dejo la linea de código en cuestión :

ClasePedida c = (ClasePedida)(Class.forName(Clase).newInstance());

¿Si usase un objeto Class directamente habría manera luego de invocar a los métodos de la clase en cuestión?

Muchas gracias :)

SALUD
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:Carga de clases en RMI

Publicado por Tom (1831 intervenciones) el 27/08/2007 15:22:38
Necesitas usar "reflection" y un diseño cuidadoso. Pero es un poco engorroso.

http://java.sun.com/docs/books/tutorial/reflect/
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:Carga de clases en RMI

Publicado por Jorge García (2 intervenciones) el 29/08/2007 08:08:17
Muchas gracias,

haciendo:

Class p = Class.forName("nombre.de.la.clase");
MiClase c = (MiClase)(p.newInstance());

mi problema es que no puedo hacer un casting de esta manera, necesito hacerlo de manera automática pues no se que clase me envia. Buscando por internet he encontrado
un sitio donde en lugar de MiClase lo que se instancia es una interfaz, pero no me vale porque en mi caso MiClase extiende a una clase abstracta y no funciona (o no he sabido hacerlo :S)

Salud,

Jorge
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