Sí que existe esto que dices, se llama "reflexión" y es bastante utilizado actualmente para todo el tema de servicios web y cosas por el estilo. Como dices tienes que utilizar la clase Class y el método forName(), y posiblemente tengas que utilizar las clases Object, Method, y Constructor, todos del paquete java. Lang. Reflect
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/reflect/package-summary.htmlEl poder de esto es increíble. Utilizando el nombre de una clase puedes crear un objeto Class de esa clase:
Class miclase = Class.forName ("ObjetoMiClase");
Con ese objeto Class puedes crear un nuevo objeto de esa clase de varias maneras. Si ese objeto tiene un constructor por defecto puedes Crear el objeto como:
ObjetoMiClase miobjeto = (ObjetoMiClase) miclase.newInstance ( );
Si la clase tiene varios constructores puedes obtener la lista de constructores con
Miclase. GetDeclaredConstructors ( )
Y con esos objetos javal. Lang. Reflect. Constructor puedes instanciar un nuevo objeto de esa clase con los parámetros determinados de cada constructor (que podrás leer y rellenar sin problemas utilizando los métodos de la clase Constructor).
O incluso si implementa algún interfaz, también puedes saberlo... en definitiva, puedes hacer de todo ;) Esto te permite generar objetos nuevos en tiempo de ejecución, y también te permite compilar código nuevo en tiempo de ejecución! Es decir, puedes tener una clase que genere código Java para otras clases según lo que necesites, y con esos nuevos ficheros fuente generados en tiempo de ejecución puedes llamar al compilador de Java para compilar y generar objetos a partir de ellas... increíble ;)
En fin, mira lo que dice el API para los objetos Class, y el API para el paquete java. Lang. Reflect, y ahí tienes toda la información que necesitas :)
Si necesitas más ayuda no dudes en contactar conmigo.