Class.forName("xxxx").newInstance("a1",

1 resposta
S

Como posso instanciar uma classe a partir de uma String que contem o seu nome, e passar argumentos para o construtor ? Ou tem como eu instancia-la sem que ela execute o construtor e posteriormente eu chamar o construtor passando os argumentos ?

1 Resposta

urubatan

mais ou menos assim, não testei :slight_smile:

Class c = Class.forName("xxxx");
Constructor const = c.getDeclaredConstructor(new Class[]{int.class,String.class}); // isto é, procura o constructor com um array de tipos de parametro, para pegar o constructor com os parametros desejados
Object objeto = cons.newInstance(new Object[] {new Integer(1),"string"}); // chama o constructor passando um array de objetos para os parametros, neste caso, os tipos primitivos devem ser mascarados com o tipo wrapper apropriado
Criado 12 de novembro de 2003
Ultima resposta 12 de nov. de 2003
Respostas 1
Participantes 2