У меня есть точка впрыска:Dagger 2 Названный Set Injection
public class Receiver {
private final Set<Sender> senders;
@Inject
public Receiver(@Named("Test") Set<Sender> senders){
this.senders = senders;
}
}
Кроме того у меня есть этот модуль, обеспечивающий зависимость:
@Module
public class MyModule {
@Provides(type = Provides.Type.SET)
@Singleton
@Named("Test")
public Sender provideSender(){
return new SpecificSender();
}
}
Но Кинжал 2 APT не может создать соответствующие классы. Я получаю это исключение от APT:
Caused by: java.lang.UnsupportedOperationException
at dagger.internal.codegen.KeyVariableNamer.apply(KeyVariableNamer.java:44)
У кого-то есть такая же проблема? Есть ли хороший способ обхода?
Если я опустил аннотацию Named, это сработает. Я использую Dagger 2.0
Спасибо
Если я использую аннотацию классификатора, механизм работает. Но, тем не менее, я думаю, что он также должен работать с @Named annotation – Soccertrash
Основываясь на первом взгляде на код компилятора Dagger2, это, кажется, крайний случай и в настоящее время является ошибкой, у него даже есть комментарий «TODO:' рядом с ним , – EpicPandaForce
Для этого вы можете [открыть проблему] (https://github.com/google/dagger/issues). – nhaarman