Junior — Middle
Lze v Daggeru implementovat dva metody v jednom modulu, které vracejí stejný typ objektu?
sobes.tech AI
Odpověď od AI
V Daggeru nie je možné jednoducho deklarovať dve metódy v jednom module, ktoré vracajú rovnaký typ objektu bez ďalšej kvalifikácie, pretože by to spôsobilo konflikt pri riešení závislosti. Na implementáciu takejto situácie je potrebné použiť anotácie @Qualifier alebo @Named na rozlíšenie týchto závislostí. Napríklad:
@Module
public class MyModule {
@Provides
@Named("typeA")
MyObject provideMyObjectA() {
return new MyObject("A");
}
@Provides
@Named("typeB")
MyObject provideMyObjectB() {
return new MyObject("B");
}
}
Takto pri injektáži môžete špecifikovať požadovanú variantu pomocou @Named("typeA") alebo @Named("typeB").