我之前问过这个问题:Dagger 2 Third part Injection Android我得到了答案。之后我又学到了一些东西,我相信我没有足够具体来解释我的问题。现在这个问题一团糟,这就是我发布这个新问题的原因。
我试图使用Dagger 2注入第三方库,特定的Otto总线。该总线应注入多个服务和活动,因为我使用事件驱动架构。
正如先前的问题提到的那样,模块,组件已经制作完成。正如回答告诉我的那样,我必须创建图表以便能够将总线引入类中。
我必须将每个类注入到我拥有的组件中,但我想知道如何创建这个组件注入泛型。答案表明了这一点:
@Component(modules = EventBusModule.class)
@Singleton
public interface EventBus {
Bus bus();
void inject(WearService wearService);
}
public class MyApplication extends Application {
private EventBus mEventBusComponent;
@Override
public void onCreate() {
super.onCreate();
mEventBusComponent = Dagger_EventBus.create();
}
public void inject(WearService wearService) {
mEventBusComponent.inject(wearService);
}
}
public class WearService extends WearableListenerService {
public int onStartCommand(Intent intent, int flags, int startId) {
((MyApplication) getApplicationContext()).inject(this);
}
}
我一直试图用Generics做这个,但一直收到这个错误:
Error:(13, 14) error: Type parameters must be bounded for members injection.
@Component(modules = CommunicationModule.class)
@Singleton
public interface AppComponent {
<T> void inject(Class<T> module);
Bus bus();
}
public <T> void inject(Class<T> module) {
mAppComponent.inject(module);
}