Sobes.tech
Junior — Middle

Vai Dagger var īstenot divas metodes vienā modulī, kas atgriež to paša veida objekta?

sobes.tech AI

Atbilde no AI

Dagger gadījumā bez papildu kvalifikācijas vienkārši nevar paziņot divas metodes vienā modulī, kas atgriež vienu un to pašu objekta tipu, jo tas radītu atkarības konfliktu. Lai īstenotu šādu situāciju, ir jāizmanto anotācijas @Qualifier vai @Named, lai atšķirtu šīs atkarības. Piemēram:

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

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

Tādējādi injekcijas laikā var norādīt nepieciešamo variantu, izmantojot @Named("typeA") vai @Named("typeB").