Sobes.tech
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").