相关疑难解决方法(0)

Dagger2 模块和依赖项之间的区别

我无法理解告诉组件他的模块是什么和告诉组件它的组件依赖项是什么之间的区别。

例如:

@Module public class ModuleA {
    @Provides DependencyA providesDependencyA() {
        return new DependencyA();
    }
}

@Module public class ModuleB {
    @Provides DependencyB providesDependencyB() {
        return new DependencyB();
    }
}

@Component (modules = {ModuleA.class}) 
public interface ComponentA {
    DependencyA getDependencyA();
}
Run Code Online (Sandbox Code Playgroud)

这有什么区别:

@Component (modules = {ModuleA.class, ModuleB.class}) 
public interface ComponentB {
    DependencyB getDependencyB();
}
Run Code Online (Sandbox Code Playgroud)

然后:

@Component (dependencies = {ComponentA.class}, modules = {ModuleB.class})
public interface ComponentB {
    DependencyB getDependencyB();
}
Run Code Online (Sandbox Code Playgroud)

android dagger-2

3
推荐指数
1
解决办法
1174
查看次数

Dagger 2 组件依赖不起作用

匕首模块

@Module
public class NetModule {

    @Provides
    @Singleton
    Gson provideGson() {
        GsonBuilder gsonBuilder = new GsonBuilder();
        return gsonBuilder.create();
    }

    @Provides
    @Singleton
    OkHttpClient provideOkHttpClient() {
        OkHttpClient client = new OkHttpClient();
        return client;
    }

    @Provides
    @Singleton
    Retrofit provideRetrofit(Gson gson, OkHttpClient okHttpClient) {
        Retrofit retrofit = new Retrofit.Builder()
                .addConverterFactory(GsonConverterFactory.create(gson))
                .baseUrl(BuildConfig.SERVER_BASE_URL)
                .client(okHttpClient)
                .build();
        return retrofit;
    }
}

@Module
public class AppModule{

    private Application application;

    public AppModule(Application application){
        this.application = application;
    }

    @Provides
    @Singleton
    Application provideApplication() {
        return application;
    }
}

@Module
public class ImageModule …
Run Code Online (Sandbox Code Playgroud)

java android dagger-2

1
推荐指数
1
解决办法
1043
查看次数

如何使用 Dagger 2 在运行时注入字段?

我需要按需注入我的一个类的实例的字段,即在运行时,因为我正在即时实例化它们。

我曾经为此使用 Guice 来调用MembersInjector#injectMembersInjector#injectMembers。我怎么能在 Dagger 2 中有这样的东西?

java dependency-injection dagger-2

1
推荐指数
1
解决办法
6431
查看次数

标签 统计

dagger-2 ×3

android ×2

java ×2

dependency-injection ×1