Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 是否有文档说明在注入依赖项时Dagger何时返回到反射?_Android_Dependency Injection_Dagger - Fatal编程技术网

Android 是否有文档说明在注入依赖项时Dagger何时返回到反射?

Android 是否有文档说明在注入依赖项时Dagger何时返回到反射?,android,dependency-injection,dagger,Android,Dependency Injection,Dagger,我的团队在我们的Android应用程序中采用了Dagger进行依赖注入,我必须说,到目前为止,我们非常喜欢它。然而,我们希望确保我们有效地使用它。我想知道是否有人可以解释,或者是否有任何文档可以解释Dagger回退到反射以注入依赖项的情况?Dagger的回退逻辑嵌入到它的FailoverLoader类中。它用于在无法加载给定模块的ModuleAdapter时进行故障切换,但如果无法加载ModuleAdapter,则最新版本将失败并出现错误 目前,Dagger将在找不到需要注入的给定类型的Inje

我的团队在我们的Android应用程序中采用了Dagger进行依赖注入,我必须说,到目前为止,我们非常喜欢它。然而,我们希望确保我们有效地使用它。我想知道是否有人可以解释,或者是否有任何文档可以解释Dagger回退到反射以注入依赖项的情况?

Dagger的回退逻辑嵌入到它的FailoverLoader类中。它用于在无法加载给定模块的ModuleAdapter时进行故障切换,但如果无法加载ModuleAdapter,则最新版本将失败并出现错误

目前,Dagger将在找不到需要注入的给定类型的InjectAdapter类时进行故障转移。最常见的情况是,您有一个可注入类型的抽象父级,该父级没有@Inject字段。在这种情况下,不会为其创建InjectAdapter,因此当加载具体的injectable类型时,它会尝试查找父级的适配器,但找不到,并创建反射替代

类似地,如果不对用@Inject字段或构造函数修饰的类运行代码生成,Dagger也会对这些类进行反射。这与上面的继承案例的逻辑是一样的,只是继承是唯一一种不是由于运行代码生成失败而导致的案例

另一方面,Google fork at当前生成的适配器处理其父类型,而不查找父类型的适配器(硬编码的父适配器),因此这种故障转移不会在Google fork中发生。我们还没有向maven发布google fork,因为直到最近它几乎完全相同,但是如果父类中的故障切换逻辑是一个问题,您可能希望提交一个问题并请求发布