Junior — Middle
Peut-on implémenter dans Dagger deux méthodes dans un même module qui retournent le même type d'objet?
sobes.tech IA
Réponse de l'IA
Dans Dagger, il n'est pas possible de simplement déclarer deux méthodes dans un même module qui retournent le même type d'objet sans qualification supplémentaire, car cela entraînerait un conflit lors de la résolution de la dépendance. Pour réaliser une telle situation, il faut utiliser les annotations @Qualifier ou @Named pour différencier ces dépendances. Par exemple :
@Module
public class MyModule {
@Provides
@Named("typeA")
MyObject provideMyObjectA() {
return new MyObject("A");
}
@Provides
@Named("typeB")
MyObject provideMyObjectB() {
return new MyObject("B");
}
}
Ainsi, lors de l'injection, il est possible de spécifier la variante souhaitée en utilisant @Named("typeA") ou @Named("typeB").