Aur*_*ere 0 java android dependency-injection dagger-2
我对 Dagger 2 非常陌生,我正在尝试通过一些小的修改来使这个基本示例工作。
这是我到目前为止:
组件类
@Component(modules = {MyModule.class})
public interface MyComponent {
void inject(Object object);
}
Run Code Online (Sandbox Code Playgroud)
模块类
@Module
public class MyModule {
@Provides
@Singleton
public Retrofit getRetrofit(){
return new Retrofit();
}
}
Run Code Online (Sandbox Code Playgroud)
静态注入器
public class MyStaticInjector {
private static MyComponent di;
public static void inject(Object object){
if(di == null){
di = DaggerMyComponent.builder().build();
}
di.inject(object);
}
}
Run Code Online (Sandbox Code Playgroud)
问题是每当我这样做
MyStaticInjector.inject(this);
Run Code Online (Sandbox Code Playgroud)
带注释的字段仍然为空。我怀疑问题出在接口方法中的类型 Object 上。在这个例子中,有一个 Activity 代替。但是我需要在不是活动的类中使用 DI。
谁能帮我?谢谢你。
Object没有带@Inject注释的字段。因此注入工作得很好——它只是没有什么可注入的。
您将不得不使用您的实际类inject(MyClass)而不是Object,以便可以生成代码并可以注入字段。
Dagger 在编译时生成源代码。如果它不知道实际的类,它就不能为它创建代码。
| 归档时间: |
|
| 查看次数: |
1992 次 |
| 最近记录: |