Perché Class.forName() non funziona per me?
-
05-09-2019 - |
Domanda
Sto cercando di creare un'istanza di una classe dalla variabile e ho scritto del codice di prova.Ma sfortunatamente non funziona.Ecco il codice:
Object co1 = new CommandDownloadHttp();
Class cc1 = Class.forName("CommandDownloadHttp");
Object co = cc1.newInstance();
Sfortunatamente sulla seconda riga si blocca java.lang.ClassNotFoundException
.
Potete per favore dirmi cosa sto facendo di sbagliato?
Soluzione
CommandDownloadHttp è il file pieno nome della classe, ad es.non ha un pacchetto?Se lo fa avere un pacchetto, includere che:
Class.forName("foo.bar.CommandDownloadHttp");
(Presumo che ci sia una ragione migliore per farlo nel tuo codice reale, tra l'altro - chiaramente in questo caso non è necessario recuperare la classe per riflessione :)
Altri suggerimenti
è la classe in un pacchetto? E questo pacchetto è importata? Così funziona in linea 1. Ma è necessario il nome completo qualificato Class.forName ( "my.package.to.CommandDownloadHttp").