Junior — Middle
É possível implementar no Dagger dois métodos num mesmo módulo que retornem o mesmo tipo de objeto?
sobes.tech IA
Resposta da IA
No Dagger, não é possível simplesmente declarar dois métodos num mesmo módulo que retornem o mesmo tipo de objeto sem uma qualificação adicional, pois isso levaria a um conflito na resolução da dependência. Para implementar tal situação, deve-se usar as anotações @Qualifier ou @Named para distinguir essas dependências. Por exemplo:
@Module
public class MyModule {
@Provides
@Named("typeA")
MyObject provideMyObjectA() {
return new MyObject("A");
}
@Provides
@Named("typeB")
MyObject provideMyObjectB() {
return new MyObject("B");
}
}
Dessa forma, na injeção, pode-se indicar a opção desejada usando @Named("typeA") ou @Named("typeB").