5

@JacksonInject反序列化时,Jackson 将从提供给 的映射ObjectMapper而不是从 JSON 中获取标记为 的对象的任何属性的值。此映射是通过调用 ObjectMapper.setInjectableValues() 并提供一个InjectableValues对象来指定的,该对象可以根据请求查找要注入的值。

用 Guice 创建这样一个对象是相当容易的(就像jackson-module-guice那样)。首先,当您创建对象映射器时,您注入Injector并将其包装在一个InjectableValues实现中,该实现只是将请求转发给Injector(要注入的事物的类及其注释可用)。

为了在 Dagger 2 中实现这一点,我们需要能够获取一个Class对象(和相关的注释)并在运行时注入一个实例。然而,鉴于 Dagger 2 的代码生成方法,这似乎是不可能的。我错过了什么吗?

4

0 回答 0