Sobes.tech
Junior — Middle

Kan je in Dagger twee methoden in hetzelfde module implementeren die hetzelfde type object teruggeven?

sobes.tech AI

Antwoord van AI

In Dagger is het niet mogelijk om eenvoudig twee methoden in één module te declareren die hetzelfde objecttype retourneren zonder aanvullende kwalificatie, omdat dit leidt tot een conflict bij het oplossen van de afhankelijkheid. Om zo'n situatie te implementeren, moeten de annotaties @Qualifier of @Named worden gebruikt om deze afhankelijkheden te onderscheiden. Bijvoorbeeld:

@Module
public class MyModule {
    @Provides
    @Named("typeA")
    MyObject provideMyObjectA() {
        return new MyObject("A");
    }

    @Provides
    @Named("typeB")
    MyObject provideMyObjectB() {
        return new MyObject("B");
    }
}

Op deze manier kan bij injectie de gewenste variant worden aangegeven met behulp van @Named("typeA") of @Named("typeB").