1

除非图中的单例对象使用 Qualifier 进行注释,否则我们可以调用:

graph.get(Bus.class);

如果此对象在模块定义中使用 Qualifier 进行注释,那么它将抛出 IllegalStateException。

有没有比从图中检索该对象更好的方法:

public class BusWrapper {
    @Inject
    @MyQualifier
    Bus bus;
}

graph.inject(new BusWrapper()).bus;

我有一组图表(每个帐户一个图表)。每个帐户图的单独总线和一个应用程序范围的总线(用不同的限定符注释)。一旦我收到 GCM 同步请求消息,我需要从正确的图表中检索总线以传递同步请求。

4

1 回答 1

4

.get()不支持通过执行带注释的实例查找。

我找不到一个好的参考帖子来引用。最接近的是这个

Dagger 1.0 绝对是围绕拥有强大的入口点/可注入对象而设计的,而不是像使用大型注释地图那样使用 ObjectGraph。

基本上,.get()旨在用于从对象图中获取根实例,在该对象图中,所有依赖项都将被@Inject正常编辑。

于 2014-10-06T17:25:19.077 回答