Instanciar Classe dinamica

8 respostas
T

Pessoal,

Tenho um metodo que recebe um Object e dentro desse metodo queria instanciar o objeto que veio como parametro. Só que eu não sei que objeto eu passei como parametro. ou seja não posso fazer instanceof.

Tem alguma maneira de instanciar e usar os metodos do objeto passado como parametro?

8 Respostas

hmichel

De uma olhada em Reflection.
Você pega o Class no método getClass() de seu objeto.

[]'s

kuchma

Se o objeto voce passou como parametro, ele ja esta instanciado, como instancia-lo novamente? :smiley:

Acho que voce vai passar um Class e quer uma instancia (ou seja, um objeto) da classe correspondente ou voce vai passar um Object e quer um outro Object da mesma classe do primeiro. O que voce quer fazer?

Para obter o Class de um objeto qualquer voce faz:

Class clazz = object.getClass();

Para obter uma instancia a partir de uma dada classe voce faz:

Class clazz = Class.forName("className"); // pule isto se voce ja tiver o Class pronto pra ser utilizado Object object = clazz.newInstance();

Nesse caso a classe tem que ter um construtor sem argumentos.

Marcio Kuchma

T

isso funcionou valeu.

agora quero chamar um metodo que esta dentro de um objeto de um outro objeto que está em minha classe.
Ex:

public class Empresa{
   private Funcionario func;
   
   // get  e set de func
}
public class Funcionario{
   private String nome;
   
   // get e set de nome
}

queria passar como parametro empresa e acessar o metodo nome de funcionario dinamicamente usando reflection

tem como?

valeu

kuchma

trash:
queria passar como parametro empresa e acessar o metodo nome de funcionario dinamicamente usando reflection

tem como?

Sim, tem como sim. Da uma olhada nessas classes da API de Reflection:

http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Class.html
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/reflect/Method.html
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/reflect/Field.html

Marcio Kuchma

T

Cara você poderia dar algum exemplo pois não entendi muito.

valeu.

Diogenes

Dá uma lida nisso aquih
acho q vai te ajudar…

kuchma

trash:
Cara você poderia dar algum exemplo pois não entendi muito.

Aqui existem exemplos que podem ajudar “pegar o jeito” :D: http://www.javaalmanac.com/cgi-bin/search/find.pl?words=reflection

Marcio Kuchma

T

valeu pessoal…!

Criado 19 de janeiro de 2005
Ultima resposta 21 de jan. de 2005
Respostas 8
Participantes 4