在 Gson 反序列化期间使用 Dagger 进行依赖注入

在我的应用程序中,我的对象不是由我创建的,而是由 Gson 反序列化器创建的。这些对象需要对单例实例的引用,我可以在其他任何地方使用构造函数注入提供这些实例。

但是,像这样在 Gson 调用的默认构造函数中访问相关组件

DaggerExampleComponent.builder().build().inject(this)

不会重用注入其他任何地方的单例 - 据我ExampleComponent所知,这是因为构建器实际上会创建一个新实例,该实例对现有实例一无所知。

我的解决方法是将一个静态instance字段ExampleComponent与 getter 一起保留,但我想知道是否有最佳实践来说明如何使用另一种方法实现相同的目标。

编辑正在使用Android Room Persistence 库对从数据库中检索的数据进行反序列化。将数据转换为自定义对象是通过使用@TypeConverter静态方法上的注释来实现的,当从数据库中检索元素时会隐式调用这些方法。这阻止我在那里注入创建的对象 - 转换器是未实例化的静态类中的静态方法,因此我无法将 DaggerComponent 对象传递给它以用于注入创建的实例,如下面的 Thorben 所建议的。


慕田峪4524236
浏览 212回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java