Instanciando uma classe a partir de uma String

2 respostas
L

Ola Pessoal,
Eu estou aprendendo Java e tive um pequeno probleminha…
Eu Queria receber uma String e com esta string, que é um nome de uma classe para mim instacia-la

no PHP, utilizamos entre chaves uma string para um objeto,

Ex:

$teste = teste;

$instancia = new $teste();

mais como eu fazo isso em java?

Scanner i = new Scanner(System.in);
        System.out.println("Selecione a Classe para Executar");
         String entrada = i.nextLine();
        
        Application d;
        d = new entrada();
        d.action();

2 Respostas

Ziru

Para criar um objeto a partir de uma string, terá que usar o conceito de reflection.

Object myObjeto = Class.forName("minhaClasse").newInstance();
		
		Method meuMetodo =  myObejto.getClass().getMethod("nomeDoMetodo", "Argumentos");
		System.out.println(meuMetodo.invoke(myObjeto, "argumentos"));

Repare também que para invocar qualquer método desse objeto a sintaxe será diferente.
A linguagem Java é muito famosa, sugiro que sempre tiver uma dúvida pode dar uma breve pesquisada no Google que irá encontrar muita coisa.
Isso aqui também possa te ajudar.
http://www.guj.com.br/java/128056-instanciar-objeto-a-partir-de-uma-string

E estude sobre reflection para obter mais conhecimentos. :)

B

Eu recomendo só estudar Reflections após você ter um conhecimento pleno da linguagem, como ela funciona, e entender que não dá para escrever programas Java da mesma forma que se escreve um PHP, pois uma é uma linguagem de tipagem estática, e a outra dinâmica.

Criado 30 de maio de 2013
Ultima resposta 30 de mai. de 2013
Respostas 2
Participantes 3