【发布时间】:2015-06-15 09:25:28
【问题描述】:
我有一个注入点:
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();
}
}
但 dagger 2 APT 无法创建适当的类。我从 APT 得到这个异常:
Caused by: java.lang.UnsupportedOperationException
at dagger.internal.codegen.KeyVariableNamer.apply(KeyVariableNamer.java:44)
有人有同样的问题吗?有没有好的解决方法?
如果我删除 Named 注释,它确实有效。 我正在使用 Dagger 2.0
谢谢
【问题讨论】:
-
如果我使用限定符注解,该机制会起作用。但是,我认为它也应该与 @Named 注释一起使用
-
乍一看 Dagger2 编译器代码,这似乎是一个边缘情况,目前是一个错误,它旁边甚至有一个
TODO:注释。 -
你可能想open an issue 。
标签: dagger-2