Here's a code sample illustrating what I find to be a surprising behavior: //Just some interface public interface Named { String getName(); }
//The implementation public class Concrete implements Named { @Override public String getName() { ... } public void setName(String name) { ... } } //Make Jackson aware that Named can be deserialized as Concrete ObjectMapper objectMapper = new ObjectMapper(); SimpleModule mod = new SimpleModule("XXXXXX"); mod.addAbstractTypeMapping(Named.class, Concrete.class); objectMapper = objectMapper.registerModule(mod); //Inspect the detected deserializable properties on Named JavaType javaType = objectMapper.getTypeFactory().constructType(Named .class); BeanDescription desc = objectMapper.getDeserializationConfig().introspect(javaType); //Check to see if name is deserializable desc.findProperties().get(0).couldDeserialize(); //It isn't? Is it normal that DeserializationConfig says it won't be able to deserialize the name property, despite having a concrete type registered? -- You received this message because you are subscribed to the Google Groups "jackson-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to jackson-user+unsubscr...@googlegroups.com. To post to this group, send email to jackson-user@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jackson-user/78374bef-0cc0-4f3d-924a-ebaf0c272678%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.