Dagger 2 依赖注入不起作用

Dagger 2 Dependency Injection not working

我是 Dagger 2 的新手,我正在尝试获取 this 基本示例并进行一些小的修改。

这是我目前拥有的:

组件class

@Component(modules = {MyModule.class})
public interface MyComponent {
void inject(Object object);
} 

模块class

@Module
public class MyModule {

@Provides
@Singleton
public Retrofit getRetrofit(){
  return new Retrofit();
}
}

静态注入器

public class MyStaticInjector {

private static MyComponent di;

public static void inject(Object object){
    if(di == null){
        di = DaggerMyComponent.builder().build();
    }
    di.inject(object);
}
}

问题是每当我这样做时

MyStaticInjector.inject(this);

带注释的字段仍然为空。我怀疑问题出在接口方法中的对象类型上。在这个例子中,有一个 Activity 代替。但是我需要在 classes 中使用 DI,这不是活动。

谁能帮帮我?谢谢。

Object 没有 @Inject 注释字段。因此注入工作正常——它只是没有注入。
您必须将实际的 classes 与 inject(MyClass) 一起使用,而不是 Object,这样才能生成代码并注入字段。

Dagger 在编译时 生成源代码。如果它不知道实际的 class,则无法为其创建代码。