Junior — Middle
Може ли да реализирате в Dagger два метода в един модул, които връщат един и същи тип обект?
sobes.tech AI
Отговор от AI
В Dagger не може просто да обявите два метода в един модул, които връщат един и същ тип обект без допълнителна квалификация, тъй като това ще доведе до конфликт при разрешаването на зависимостта. За реализиране на такава ситуация трябва да използвате анотациите @Qualifier или @Named, за да различавате тези зависимости. Например:
@Module
public class MyModule {
@Provides
@Named("typeA")
MyObject provideMyObjectA() {
return new MyObject("A");
}
@Provides
@Named("typeB")
MyObject provideMyObjectB() {
return new MyObject("B");
}
}
По този начин, при инжектиране, може да посочите желания вариант с помощта на @Named("typeA") или @Named("typeB").