Pessoal como faço pra instanciar uma classe em tempo de execução sem conhecer o tipo?
Imaginem hipoteticamente que eu tenha um método que recebe duas Strings:
...
public Object chamaMetodoDesconhecido(String classe, String metodo){
classe x = new classe();
Object o = x.metodo();
return o;
}
...
Vejam que eu não sei quem é a “classe” e nem o “metodo” a ser chamado, tudo será recebido por parâmetro, tem como eu fazer isso?
pmlm
#2
Artigo do GUJ: http://www.guj.com.br/article.show.logic?id=10
Mas, basicamente:
String classname = "guj.MinhaClasse";
Object o = Class.forName( classname ).newInstance();
Como invocar o método dinamicamente eu não lembro, mas no artigo explica.
public Object invokeMethod(String classe, String metodo){
Class<?> clazz = Class.forName(classe);
Method m = clazz.getDeclaredMethod(metodo);
Object obj = clazz.newInstance();
return m.invoke(obj);
}
valeu muito pessoal era o que eu precisava grato a todos.