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