Implementando um BeanFactory com Generics

1 resposta
guigouz

Seguinte, acompanhando meu tópico anterior (preciso acessar o bean de forma diferente se estiver dentro do glassfish ou numa vm comum), depois de muito pesquisar cheguei a seguinte conclusão.

class BeanFactory {
  public static boolean isLocal = false;


  public static <T> getBeanFor(Class c) {
     if(isLocal) {
         // retorna o próprio bean
     }
     else {
         // faz um lookup via JNDI e retorna a interface
     }
   }

}

Como o Bean obrigatoriamente implementa a interface, não teria problema.. de qualquer lugar (dentro ou fora do contêiner) eu faria BeanFactory.getBeanFor(Pessoa.class); e ele me retornaria a interface e pra view é indiferente se foi acessada via jndi ou direto.

Bom, a dúvida vai pros experientes com generics... tem como eu voltar o tipo certo ? ou melhor eu fazer um método pra cada tipo de bean ? a lógica de todos eles é praticamente igual

Abraço

gui

1 Resposta

T

A definição correta é:

public static <T> getBeanFor (Class<T> c) {
Criado 3 de outubro de 2007
Ultima resposta 3 de out. de 2007
Respostas 1
Participantes 2