Instanciar Classe dinamica

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?

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

[]'s

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

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

[quote=trash]queria passar como parametro empresa e acessar o metodo nome de funcionario dinamicamente usando reflection

tem como?[/quote]

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

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

valeu.

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

[quote=trash]Cara você poderia dar algum exemplo pois não entendi muito.
[/quote]

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

Marcio Kuchma

valeu pessoal…!