作者:PHPYeQ | 来源:互联网 | 2023-05-31 19:26
我正在尝试在我的Android应用程序中使用Dagger来简化依赖注入.看起来Dagger2.0不支持抛出异常的构造函数.这个问题有方法解决吗?重构和创建抛出异常的init方法似乎
我正在尝试在我的Android应用程序中使用Dagger来简化依赖注入.看起来Dagger 2.0不支持抛出异常的构造函数.这个问题有方法解决吗?
重构和创建抛出异常的init方法似乎不可行,因为必须在整个依赖对象链上调用init重新引入了匕首解决的问题.
解决方法:
生成代码在构造函数期间抛出异常时应该发生什么并不清楚.是否需要依赖于此类实例的类以某种方式捕获异常?如果抛出异常,应用程序是否应该崩溃?通常,依赖注入试图将依赖类与知道其依赖关系的构造策略分开,这将违反该原则.
一种选择是使用@Module,它提供实例.然后,如果抛出异常,那么@Provides方法可以返回合理的默认值.您还可以考虑使用Optional<>表示无法正确构造对象.