我想知道是否可以在片段或活动之外使用字段注入?我知道我可以使用构造函数注入,但是我想知道是否也可以使用字段注入。我认为 Dagger 是可能的。
当我尝试对注入的
yclass
字段执行某些操作时,我收到此错误
lateinit property yClass has not been initialized
但它是在我创建的模块中初始化的。
根据文档,我需要使用 @AndroidEntryPoint 注释来使用字段注入,但在这种情况下,我收到此错误:
@AndroidEntryPoint base class must extend ComponentActivity, (support) Fragment, View, Service, or BroadcastReceiver.
注意:活动正常运行,没有错误
基本上,我想做这样的事情,
class XClass() {
@Inject
lateinit var yClass: YClass
}
提前致谢,
要对自定义类使用字段注入,需要使用@EntryPoint注解。欲了解更多信息:
https://developer.android.com/training/dependency-injection/hilt-android#not-supported
或代码实验室:
对于任何正在寻找替代答案的人,我已经创建了一个库来在任何地方注入自定义类。即使在函数中!该库位于 https://github.com/dewantawsif/flexible-hilt。对自定义类进行一些调整后,它就这么简单
fun printPetType(pet: Pet = getFromFlexibleHilt()) {
println(pet.type)
}