(RESOLVIDO) problema

8 respostas
jonasjgs2

primeiro que tudo bem obrigado pela ajuda de voces
estou apanhando muito. mas faz parte… rs

problema:

tenha uma String c que e o nome de uma class

como fazer para executar esta classe com o nome que esta na String c

8 Respostas

xandevieira

Não entendi muito bem, mas acho q é isso.

Object obj = Class.forName(c).newInstance();
jonasjgs2

avsousa, e o seguinte:

eu tenho um menu de aplicacoes
e todas as aplicacoes tem um metodo executa

na realidade eu quero que quando o usuario
clicar na opcao desejada execute uma das classes
existentes

como cada aplicacao e uma classe
eu executaria a classe conforme a opcao selecionada
apenas chamando o metodo executa

a unica diferenca e o nome da classe

como a opcao eu tenho uma string
pega pelo name do menu

bastava eu chamar

a classe usando esta string

wagnerfrancisco

jonasjgs2, o que o avsouza postou parece resolver o teu problema. Usando:

Object obj = Class.forName(nomeDaClasse).newInstance();

Você obtem o objeto necessário. Basta invocar o método executar() neste objeto. Sugiro que crie uma interface para estas classes. Algo assim:

interface Executavel {
   void executar();
}

Depois de instanciar você faz cast e chama o método necessário:

Executavel executavel = (Executavel) Class.forName(nomeDaClasse).newInstance();
executavel.executar();
jonasjgs2

cara eu nao como eu posso chamar os metodos
da
class

ex:
fiz o teste

obj. e nao apareceu um metodo que eu tinha
criado em uma classe

xandevieira

Ja que o modo como foi falado não “resolve”, vc pode fazer o seguinte:

ja que cada aplicação é uma classe, pegue sua String e rode pelo Runtime.getRuntime().exec("cmd.exe /C java " + c);
acho q resolve.

jonasjgs2

avsousa, a classe executa porque tem um construtor
nela

String NomeDaClasse = “ClasseExemplo”;

Object obj = Class.forName(nomeDaClasse).newInstance();

mas eu queria que houvesse um geito de
executar um metodo da classe:

ex: obj.getString()

entendeu?

na realidade

xandevieira
Sim entendi, mas nesse caso vc deve fazer cast do obj para a sua classe.
String NomeDaClasse = "ClasseExemplo";

Object obj = Class.forName(nomeDaClasse).newInstance(); 

ClasseExemplo classeExemplo = (ClasseExemplo) obj;
classeExemplo.metodoQvcQuerExecutar();

Bom seria vc seguir a sugestão do wagnerfrancisco

jonasjgs2

String s = “teste2”;

Object obj = Class.forName(s).newInstance();

String a;
a = (String) obj.getClass().getMethod(“getNome”).invoke(obj);

System.out.println(a);

gente e assim que funciona

na minha classe eu tenho um metodo chamdado getNome

e funcionou

Criado 28 de outubro de 2011
Ultima resposta 28 de out. de 2011
Respostas 8
Participantes 3