Скажем, у меня есть две службы AService
и BService
, для которых требуется ключ api.Почему Кинжал не допускает множественные аннотации классификатора на элемент?
Так что в моих модулях, я не могу сделать что-то вроде:
@Provides @Singleton @A @ApiKey String provideAKey() { return "a"; }
@Provides @Singleton @B @ApiKey String provideBKey() { return "b"; }
(Dagger пожалуется с «только один классификатор аннотаций допускается для каждого элемента»). Вместо этого я должен определить два отдельных классификатора для каждой комбинации: @ApiKeyA
и @ApiKeyB
.
Для службы с несколькими зависимостями (думаю, сетевой клиент, заголовки запросов и т. Д.) Становится громоздким определять эти квалификаторы для каждой комбинации, а не просто комбинировать разные аннотации.
Есть ли причина, почему это явно запрещено?