在 Android/Java 中构建 SDK 时如何使 Dagger 可选?
How do make Dagger optional when buildling an SDK in Android/Java?
我是一个SDK,将public供其他开发者使用。到目前为止,我已经使用 Dagger 构建了我的 SDK,但我不希望开发人员在使用 SDK 时依赖 Dagger。有没有办法根据匕首是否已启用来设置@Inject 依赖项?有什么好的解决办法吗?
例如,如果用户使用 Dagger,我希望注入这个,否则我的系统会以某种方式设置它。
@Inject
SensorManager mSensorManager;
您可以检查 dagger.ObjectGraph class 是否可以加载 - 然后才调用 ObjectGraph.create.
如果不包含 dagger,则 mSensorManager 将为 null。
话虽如此,根据 class 路径中是否存在库来做出决定似乎是一种脆弱的设置。但是,如果没有更多的上下文,很难说什么是更好的解决方案。
我是一个SDK,将public供其他开发者使用。到目前为止,我已经使用 Dagger 构建了我的 SDK,但我不希望开发人员在使用 SDK 时依赖 Dagger。有没有办法根据匕首是否已启用来设置@Inject 依赖项?有什么好的解决办法吗?
例如,如果用户使用 Dagger,我希望注入这个,否则我的系统会以某种方式设置它。
@Inject
SensorManager mSensorManager;
您可以检查 dagger.ObjectGraph class 是否可以加载 - 然后才调用 ObjectGraph.create.
如果不包含 dagger,则 mSensorManager 将为 null。
话虽如此,根据 class 路径中是否存在库来做出决定似乎是一种脆弱的设置。但是,如果没有更多的上下文,很难说什么是更好的解决方案。