Sobes.tech
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").