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