gpt4 book ai didi

android - 非 Activity 类中的 Dagger 2 依赖项

转载 作者:搜寻专家 更新时间:2023-11-01 08:20:11 25 4
gpt4 key购买 nike

所以有很多很多教程展示了如何使用 Dagger 2 将依赖项注入(inject)到 Activity 类中。但是由于某些原因,依赖项似乎永远不会被插入到不是 Activity/fragment/服务的类中。我想知道如何将依赖项插入普通类。

现在,我正在尝试将 Dagger 注入(inject)一个字段,但该字段仍然为空。我假设错误是我没有告诉 Dagger 进行注入(inject)。但我不确定如何解决这个问题。

@Module
public class TestModule {
@Provides
@Singleton
String provideTestString() {
return "test string";
}
}
@Singleton
@Component(modules = { TestModule.class })
public interface TestComponent {
void inject(TestClass testClass);
String getTestString();
}
class TestClass {
@Inject
String testString;

public boolean isTestStringNull() {
return testString == null;
}
}
Log.d("---", "is test string null: " + new TestClass().isTestStringNull());//is true

虽然我可以在 Application 的子类中调用 DaggerTestComponent.create(),但它在不知道 Application 的随机类中不可用。那么让 Dagger 初始化我的领域的正确方法是什么?

最佳答案

class TestClass {
@Inject
String testString;

@Inject
TestClass() {}
}

@Singleton
@Component(modules = { TestModule.class })
public interface TestComponent {
TestClass testClass();

String testString();
}

Log.d("---", "is test string null: " + component.testClass().isTestStringNull());//is false

关于android - 非 Activity 类中的 Dagger 2 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52297582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com