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