除非图中的单个对象用限定符注释,否则我们可以调用:
graph.get(Bus.class);
如果使用限定符在模块定义中注释此对象,则会抛出IllegalStateException。
是否有更好的方法从图表中检索该对象:
public class BusWrapper {
@Inject
@MyQualifier
Bus bus;
}
和
graph.inject(new BusWrapper()).bus;
我有一组图表(每个帐户一张图表)。每个帐户图表和一个应用程序范围总线(使用不同的限定符注释)的单独总线。 收到GCM同步请求消息后,我需要从正确的图表中检索总线以传递同步请求。
答案 0 :(得分:3)
不支持通过.get()
执行带注释的实例查找。
我找不到一个好的参考文章来引用。最接近的是this one:
Dagger 1.0绝对是围绕拥有强大的入口点/可注入对象而设计的,而不是像使用大注释地图那样使用ObjectGraph。
基本上,.get()
旨在用于从对象图中抓取根实例,在该实例下,所有依赖关系都将@Inject
正常。