Por que Class.forName () não funciona para mim?
-
05-09-2019 - |
Pergunta
Eu estou tentando instanciar uma classe de variável, e escreveu um código de teste. Mas, infelizmente, ele não está funcionando. Aqui está o código:
Object co1 = new CommandDownloadHttp();
Class cc1 = Class.forName("CommandDownloadHttp");
Object co = cc1.newInstance();
Infelizmente na segunda linha ele trava com java.lang.ClassNotFoundException
.
Você pode me dizer o que estou fazendo de errado?
Solução
é CommandDownloadHttp o completo nome da classe, ou seja, ele não tem um pacote? Se faz tem um pacote, incluem o seguinte:
Class.forName("foo.bar.CommandDownloadHttp");
(I supor que há uma razão melhor para você fazer isso em seu código real, btw - claramente, neste caso, você realmente não precisa buscar a classe pela reflexão:)
Outras dicas
É a sua classe em um pacote? E este pacote é importado? Assim que trabalha na linha 1. Mas você precisa o nome qualificado completo em Class.forName ( "my.package.to.CommandDownloadHttp").