使用 Dagger 2 在与 Jackson 反序列化时注入值

Rya*_*ard 5 jackson dagger dagger-2

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

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

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