Sobes.tech
Junior — Middle

Dagger-də eyni modüldə eyni növ obyekt qaytaran iki metod həyata keçirmək mümkündürmü?

sobes.tech Süni İntellekt

AI-dan cavab

Dagger-də, əlavə ixtisas olmadan eyni obyekt növünü qaytaran iki metodu sadə şəkildə bir modulda elan etmək mümkün deyil, çünki bu, asılılığın həllində münaqişəyə səbəb olar. Belə vəziyyəti həyata keçirmək üçün, bu asılılıqları fərqləndirmək üçün @Qualifier və ya @Named annotasiyalarından istifadə etmək lazımdır. Məsələn:

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

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

Beləliklə, injeksiyada istənilən variantı @Named("typeA") və ya @Named("typeB") istifadə edərək göstərə bilərsiniz.