反序列化时,Jackson将从提供给ObjectMapper
而不是JSON的映射中获取标有@JacksonInject
的对象的任何属性的值。通过调用ObjectMapper.setInjectableValues()
并提供InjectableValues
对象来指定此映射,该对象可以查找要根据请求注入的值。
使用Guice创建这样的对象相当容易(如jackson-module-guice
那样)。首先,在创建对象映射器时,注入Injector
并将其包装在InjectableValues
实现中,该实现只是将请求转发给Injector
(要注入的事物的类及其注释可用。)
为了使用Dagger 2,我们需要能够获取Class
对象(以及相关的注释)并在运行时注入实例。但是,鉴于Dagger 2的代码生成方法,这似乎是不可能的。我错过了什么吗?