¿Por qué Class.forName() no me funciona?
-
05-09-2019 - |
Pregunta
Estoy intentando crear una instancia de una clase a partir de una variable y escribí un código de prueba.Pero, lamentablemente, no funciona.Aquí está el código:
Object co1 = new CommandDownloadHttp();
Class cc1 = Class.forName("CommandDownloadHttp");
Object co = cc1.newInstance();
Desafortunadamente, en la segunda línea falla. java.lang.ClassNotFoundException
.
¿Puedes decirme qué estoy haciendo mal?
Solución
¿Es CommandDownloadHttp el lleno nombre de la clase, es decir¿No tiene paquete?Si se hace Tienes un paquete, incluye que:
Class.forName("foo.bar.CommandDownloadHttp");
(Supongo que hay una mejor razón para que hagas esto en tu código real, por cierto; claramente, en este caso no necesitas recuperar la clase mediante reflexión :)
Otros consejos
Es el clase en un paquete? Y se importa este paquete? Por lo que funciona en la línea 1. Sin embargo, se necesita el nombre cualificado completo en Class.forName ( "my.package.to.CommandDownloadHttp").