【发布时间】:2019-07-25 20:08:30
【问题描述】:
我有一个扩展 JsonDerserializer<Type> 的类。在这个反序列化器中,我有一个替换值的概念,我目前使用 objectReader(Injectables) 设置。我的问题是有时我没有注射剂。
我在ObjectMapper 上没有看到允许我检查是否设置了可注入密钥的方法。我只看到findInjectableValue,如果该值不存在,它会抛出InvalidDefinitionException。我目前正在尝试接听这个有效的电话,但我觉得它更像是一种黑客攻击。
我有什么遗漏吗?
我真的不想拥有这个try-catch。我想先检查是否存在可注入值。
try {
Object replacementValueObject = ctxt.findInjectableValue("replacementValues", null, null);
if (replacementValueObject instanceof Map) {
replacementValues = (Map<String, Object>) replacementValueObject;
mapper.setInjectableValues(new InjectableValues.Std().addValue("replacementValues", replacementValues));
}
}catch (InvalidDefinitionException ie){
logger.info("No replacement values exist. Ignoring and moving on");
}
【问题讨论】:
标签: java exception serialization jackson injectable