我是一个将为其他开发者公开的SDK。到目前为止,我已经使用Dagger构建了我的SDK,但我不希望开发人员在使用SDK时依赖Dagger。有没有办法根据是否启用了dagger来设置@Inject依赖项?对此有什么好的解决方案吗?
例如,如果用户使用Dagger,我希望注入此项,否则我的系统会以某种方式设置。
@Inject
SensorManager mSensorManager;
答案 0 :(得分:1)
您可以检查是否可以加载dagger.ObjectGraph类 - 然后才调用ObjectGraph.create。
如果未包含匕首,则mSensorManager将为空。
话虽如此,基于类路径中存在库的决策似乎是脆弱的设置。但是,如果没有更多的背景,很难说什么是更好的解决方案。