DAe galera!!! Eu tava querendo fazer algo assim!!
Vamos supor que eu tenha 5 classes e outra classe que vai fazer o tratamento que eu quero!! Essa outra classe teria um método que recebe o nome da classe, instancia o objeto e me retorna a instancia de uma dessas 5 classes!!
Como eu posso fazer isso? Eu li alguma coisa sobre Reflection!! Alguém teria algum exemplo?
Valeu e fiquem com Deus!!!
Classe que retorna instancia de outro objeto
J
4 Respostas
B
Ola,
seria +/- assim:
import java.lang.reflection.*;
...
public Object retornaInstancia(String className){
try{
//o className deve ser o package.NomeDaClasse
Class classe = Class.forName(className);
// se der chabu nesta linha é pq não achou a classe
Constructor constructor = classe.getConstructor(new Class[0]);
//na linha de cima se pega o construtor default, se der erro é pq não existe... se for pra pegar outro constrtor só passar os tipos do parametro no array de Class.
return constructor.newInstance();
//instanceia e devolve uma nova instancia
}catch(Exception e){
e.printStackTrace();
}
}
I
E ai Jhonatas tranquilo? É com Reflection sim. O que tu podes fazer é usar a classe “Class”. Com ela tu podes criar uma nova instância pelo nome da classe. Um exemplo em que muita gente usa reflection e não se dá conta é com o JDBC quando se invoca a classe do driver:
//...
Class driverClass = Class.forName("oracle.jdbc.driver.OracleDriver");
OracleDriver driver = (OracleDriver) driverClass.newInstance();
//...
Se estiver usando a versão 5 do Java…
@SuppressWarnings("unchecked")
private void reflect() {
Class<OracleDriver> driverClass = (Class<OracleDriver>) Class.forName("oracle.jdbc.driver.OracleDriver");
OracleDriver driver = driverClass.newInstance();
}
Agora com a instância “na mão” podes invocar o que estiver definido nela. Usando o objeto da classe Class consegues obter nomes de metodos, atributos, super classes…
E o que anda aprontado aí na halt? T+
J
Valeu galera!!! E quem é tu iktuz?
Tenho minhas suspeitas!!
Huahuhaua
I
José Renato 
Criado 5 de dezembro de 2006
Ultima resposta 5 de dez. de 2006
Respostas 4
Participantes 3
Alura Git Flow: entenda o que é, como e quando utilizar Entenda o que é Git Flow, como funciona seu fluxo com branches como Master, Develop, Feature, Release e Hotfix, além de vantagens e desvantagens.
Casa do Codigo Ontologias e Web Semantica: Do conceito a aplicacao Por Ivam Galvao Filho — Casa do Codigo