Mal*_*han 14 android dependency-injection dagger
我的项目中有一个抽象基类
public abstract class BaseActivity<T extends BasePresenter<? extends IBaseView>> implements IBaseView{
Run Code Online (Sandbox Code Playgroud)
我尝试注入这样的泛型类:
@Inject protected T mPresenter;
Run Code Online (Sandbox Code Playgroud)
有没有办法让匕首与这种通用注射一起工作?Dagger生成如下代码:
public final class BaseActivity$$InjectAdapter extends Binding<BaseActivity>
implements MembersInjector<BaseActivity> {
private Binding<T> mPresenter;
}
Run Code Online (Sandbox Code Playgroud)
然后失败因为"T无法解析为某种类型".有没有办法让它生成一个
Binding<SomethingExtendingBasePresenter> mPresenter
Run Code Online (Sandbox Code Playgroud)
在这种情况下?
小智 1
我知道的唯一方法是创建一个扩展泛型的新类。您感兴趣的每种类型都有一个。
public class Foo extends BaseActivity<SomethingExtendingBasePresenter> {
}
@Inject
Foo mFoo;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2048 次 |
| 最近记录: |