假设我有一个这样的类:
public static class Test { private Optional<String> something; public Optional<String> getSomething() { return something; } public void setSomething(Optional<String> something) { this.something = something; } }
如果我反序列化这个JSON,我得到一个空的可选:
{"something":null}
但是如果缺少属性(在这种情况下只是空JSON),我得到null而不是Optional.我当然可以自己初始化字段,但我认为最好有一个null和缺少属性的机制.那么有没有办法让jackson反序列化缺少的属性为空可选?
解决方法
可选并不是真正意味着用作字段,而是更多地用作返回值.为什么没有:
public static class Test { private String something; public Optional<String> getSomething() { return Optional.ofNullable(something); } public void setSomething(String something) { this.something = something; } }