我有三门课:
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.EXISTING_PROPERTY,
property = "type"
)
@JsonSubTypes(value = {
@JsonSubTypes.Type(value = CaseBO.class, name = "case"),
@JsonSubTypes.Type(value = CallBO.class, name = "call"),
})
abstract class BusinessObject {
private Map<String, Object> properties = new HashMap<>();
private String type;
public String getType() {
return this.type;
}
public void setType(String type) {
this.type = type;
}
public Map<String, Object> getProperties() {
return properties;
}
public void setProperties(Map<String, Object> properties) {
this.properties = properties;
}
}
class CallBO extends BusinessObject {
private String content;
public String getContent() {
return this.content;
}
public void setContent(String content) {
this.content = content;
}
}
class CaseBo extends BusinessObject {
private String caseId;
public String getCaseId() {
return caseId;
}
public void setCaseId(String caseId) {
this.caseId = caseId;
}
}
我想要的是:
除了默认的继承反序列化(将json字段和它们的值放入POJO的bean属性中)之外,我还想将每个字段都放入属性Map中。那么我如何用最少的代码来完成这一点呢?
1条答案
按热度按时间1sbrub3j1#
我想知道为什么你要把派生类中的字段放到属性中?CallBO和CaseBO是为了把它们唯一的参数分开,这样就不会互相干扰了,所以为什么要把它们放在一起呢?