【发布时间】:2021-10-22 00:11:09
【问题描述】:
由于其通用性质,我无法让MyClass 在此处被注入。
Dagger 报错:
Error:(187, 10) error: com.test.MyClass 有类型参数,不能成员注入原始类型。通过: com.test.MyComponent.inject(com.test.MyClass obj) 【类型的组件注入方式:com.test.MyClass】
我用谷歌搜索了一下,但无法找到这种情况的解决方案。
class MyClass<Type> {
@Inject
UserCredentials userCredentials;
ResultProducer<Type> mRP;
public MyClass(ResultProducer<Type> resultProd) {
mRP = resultProd;
Injector.getComponent().inject(this);
}
public Type getResult() {
if (userCredentials.isLoggedIn()) {
mRP.get();
} else {
mRP.getAnonymousCache();
}
}
}
@Component(modules = CredentialsModule.class )
interface MyComponent {
void inject(MyClass obj);
}
@Module
class CredentialsModule {
@Provides
public UserCredentials provideUserCredentials() {
return new UserCredentials();
}
}
【问题讨论】:
标签: generics dependency-injection dagger