- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
关于useInput,我读过一些文章
"useInput: It is Boolean and decides whether matching input value is used for annotated property or not. If the value is false, input value will be ignored. If the value is true, input value will override injected value. Default value of useInput is default that has true value."
我的问题:
考虑下面的代码:
public class Writer {
private Integer id;
@JacksonInject(useInput = OptBoolean.TRUE)
private String name;
public static void main(String[] args) throws IOException {
String jsonData = "{\"id\":111,\"name\":\"Ju\"}";
ObjectMapper mapper = new ObjectMapper();
InjectableValues.Std injectableValues = new InjectableValues.Std();
injectableValues.addValue(String.class, "Default Value");
mapper.setInjectableValues(injectableValues);
Writer writer = mapper.readValue(jsonData, Writer.class);
System.out.println(writer);
}
....get set....
}
反序列化后,“name”属性的值始终为“Ju”,无论OptBoolean是TRUE还是FALSE,那么“OptBoolean”是什么意思?以及如何使用它?
最佳答案
当 Jackson 向属性(property)注入(inject)值(value)时,它可以根据两个因素确定注入(inject)的值(value):
这样,您就可以决定将所有String
属性都注入(inject)“默认值”
,但将注入(inject)一个特定的String
属性与“具体值”
。为此,您将 String id 指定为注释的值,并使用 injectableValues.addValue()
接收 String
作为第一个参数(不是 Class
)
UseInput
arg 适用于虽然您指定注释的值,但您可以决定是使用还是忽略它(恢复到基于类型的注入(inject))的情况,这在您这样做时很有用无法访问源代码(例如,在第 3 方库中),然后您可以使用 Jackson 的 mixin 功能来覆盖注释
关于java - 如何使用@JacksonInject(useInput= OptBoolean.FALSE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55922600/
关于useInput,我读过一些文章 "useInput: It is Boolean and decides whether matching input value is used for ann
我是一名优秀的程序员,十分优秀!