[quote=sergiotaborda][quote=Jean_Utf]Dae pessoal,
Estou com uma dúvida:
To usando Reflaction e precisava descobrir, em tempo de execução, o tipo da classe.
Por exemplo
Class classe = Class.forName(“eventos.TEventoAssociacao”);
a partir do class eu preciso saber que o tipo é TEventoAssociacao, pra usar essa informação
num cast em tempo de execução. Isso é possível??
Valeu.
[/quote]
Primeiro, java não é Delphi. Livre-se desse prefixo T.
Segundo a sua ideia não faz sentido.
Se vc carrega a classe dinamicamente vc não sabe qual é. Não faz sentido fazer cast.
Agora, se todas as classes que vc carrega dinamicamente foram filhas de uma classe ou interface comum, vc pode retornar um objeto dessa classe. Algo assim:
[code]
public static Class load(String name){
return Class.forName(name).asSubclass(AInterfaceComum.class);
}
[/code][/quote]
O “T” é padrão da empresa para nome de classe. “A”, classe abstrata… “E”, enum… enfim…
Entendi o que vocês falaram… realmente o que eu to tentando me pareceu um pouco de chuncho…
Uma Factory deve retornar objetos comuns a uma interface… o problema é que cada Evento tem seus métodos
distintos.
Pensando aqui, acho que achei uma solução… vou criar uma interface com um método setCampos(List listaCampos)
e passar a lista de campos do Evento. Assim cada objeto conhece a ordem dos campos, e que atributo aquele campo
referencia…
Isso resolve meu problema. =)
O código seria mais ou menos assim antes:
switch(tipoEvento)
{
Evento1:
TEvento1 evento1 = new TEvento1();
evento1.setCampo1(campo1);
evento1.setCampo2(campo2);
....
return evento1;
Evento2:
TEvento2 evento2 = new TEvento2();
evento2.setCampo1(campo1);
evento2.setCampo2(campo2);
....
return evento2;
}
Com a nova solução ficaria:
//IEvento é uma interface.
//listaCampos contém todos os campos(atributos) do evento específico.
//Esse código nunca vai mudar!
IEvento evento = Factory.getEvento(tipoEvento);
evento.setCampos(listaCampos);
return evento;
Meio por cima… não sei se consegui me expressar bem…
Mas valeu pelas opiniões… foram bem úteis!! 
Até mais!