15

我的项目中有一个抽象基类

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

在这种情况下?

4

1 回答 1

1

我知道的唯一方法是创建一个扩展泛型的新类。您感兴趣的每种类型都有一个。

public class Foo extends BaseActivity<SomethingExtendingBasePresenter> {
}

@Inject
Foo mFoo;
于 2014-08-29T13:39:30.067 回答