Back to questions
Junior — Middle
78
Можно ли реализовать в Dagger два метода в одном модуле, возвращающих один и тот же тип объекта?
Companies where asked
Viasat tech
Answer from AI
sobes.tech 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").