我的项目中有一个抽象基类
public abstract class BaseActivity<T extends BasePresenter<? extends IBaseView>> implements IBaseView{
我尝试注入这样的泛型类:
@Inject protected T mPresenter;
有没有办法让匕首与这种通用注射一起工作? Dagger生成如下代码:
public final class BaseActivity$$InjectAdapter extends Binding<BaseActivity>
implements MembersInjector<BaseActivity> {
private Binding<T> mPresenter;
}
然后失败,因为“T无法解析为某种类型”。有没有办法让它生成
Binding<SomethingExtendingBasePresenter> mPresenter
在这种情况下?
答案 0 :(得分:0)
我知道的唯一方法是创建一个扩展泛型的新类。您感兴趣的每种类型一个。
public class Foo extends BaseActivity<SomethingExtendingBasePresenter> {
}
@Inject
Foo mFoo;