Junior — Middle
Se poate implementa în Dagger două metode într-un modul care returnează același tip de obiect?
sobes.tech AI
Răspuns de la AI
În Dagger, nu se poate declara pur și simplu două metode într-un modul care să returneze același tip de obiect fără o calificare suplimentară, deoarece acest lucru ar duce la un conflict în rezolvarea dependenței. Pentru a implementa o astfel de situație, trebuie să folosiți adnotările @Qualifier sau @Named pentru a diferenția aceste dependențe. De exemplu:
@Module
public class MyModule {
@Provides
@Named("typeA")
MyObject provideMyObjectA() {
return new MyObject("A");
}
@Provides
@Named("typeB")
MyObject provideMyObjectB() {
return new MyObject("B");
}
}
Astfel, la injecție, se poate specifica varianta dorită folosind @Named("typeA") sau @Named("typeB").