Sobes.tech
Junior — Middle

Dagger'da bir modulda bir xil turdagi ob'ektni qaytaradigan ikki metodni amalga oshirish mumkinmi?

sobes.tech AI

AIdan javob

Daggerda, bir modulda ikkinchi bir qo'shimcha sifat bilan bir xil turdagi ikki metodni oddiygina e'lon qilish mumkin emas, chunki bu bog'liqlikni hal qilishda muammo tug'iladi. Bunday holatni amalga oshirish uchun, bu bog'liqliklarni ajratish uchun @Qualifier yoki @Named annotatsiyalaridan foydalanish kerak. Masalan:

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

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

Shunday qilib, injektsiya qilishda, kerakli variantni @Named("typeA") yoki @Named("typeB") yordamida ko'rsatish mumkin.