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