Ответ
Qualifier в Dagger — это аннотация, позволяющая различать зависимости одного типа. Используется, когда нужно предоставить разные реализации для одного интерфейса/класса.
Пример:
@Qualifier
annotation class NetworkApi
@Qualifier
annotation class MockApi
@Module
class AppModule {
@NetworkApi
@Provides
fun provideNetworkApi(): Api = NetworkApiImpl()
@MockApi
@Provides
fun provideMockApi(): Api = MockApiImpl()
}
class MyViewModel @Inject constructor(
@NetworkApi private val api: Api
)
Без Qualifier Dagger не поймёт, какую именно реализацию Api нужно внедрить. Qualifier помогает устранить эту неоднозначность.