E aê pessoal!
Queria opiniões de vocês quanto ao uso do CDI nas questões de Herança e Polimorfismo entre classes.
Não sei se estou entendendo direito, com o uso de qualificadores (Qualifier) você só diz ao CDI que para a interface XPTO, eu quero utilizar a implementacao XPTOImpl…
Não consigo entender onde poderia ajudar na questão de herança e polimorfismo, tendo em vista que as outras implementações são “descartadas”
quando utilizarmos a interface XPTO, tendo que fazer a utilização direta da classe XPTOImpl2, por exemplo…
Exemplo:
public class ClasseA{
//Interface que foi sinalizada que quero a implementação 1
@Inject
@ImplQueQuero
private ClasseB classeB;
//Injeção direta da implementação 2
@Inject
private ClasseBImpl2 classeBImpl2;
//...
}
@ImplQueQuero
public interface ClasseB{
}
@Qualifier
@Retention(RUNTIME)
@Target( { TYPE, METHOD, PARAMETER, FIELD })
public @interface ImplQueQuero{}
@ImplQueQuero
public class ClasseBImpl1 implements ClasseB{
//......
}
public class ClasseBImpl2 implements ClasseB{
//......
}
// Implementações N
Existe alguma outra forma de resolver isso? Porque assim, não enxergo a vantagem em utilizar a interface Classe B se tenho que injetar as Implementações…
Vlw galera!
