【发布时间】:2018-11-08 10:04:30
【问题描述】:
我们目前有一些用于数据对象的 mixin,以便将注释排除在数据对象之外。比如
public class SomeDataObj {
private int a;
public int getA() { return this.a; }
public void setA(final int a) { this.a = a; }
}
public interface SomeDataObjMixin {
@JacksonXmlElementWrapper(useWrapping = false)
@JacksonXmlProperty(localName = "A")
int getA();
@JacksonXmlElementWrapper(useWrapping = false)
@JacksonXmlProperty(localName = "A")
void setA(int a);
}
然后在我们的对象映射器类中我们有
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
public class OurXmlMapper extends XmlMapper {
public OurXmlMapper(final ConfigurableCaseStrategy caseStrategy) {
setPropertyNamingStrategy(caseStrategy);
setSerializationInclusion(Include.NON_NULL);
//yadda yadda
addMixin(SomeDataObj.class, SomeDataObjMixin.class);
// etc etc
}
但是,出于各种原因,我想为数据对象中的私有字段添加一个新注释,而不是 getter 或 setter。有没有办法通过 mixin 来保持这种分离?我尝试创建一个基本类作为mixin(不是接口),并添加了私有字段 对此的新注释。这并没有实现我想要的。有什么想法吗?
【问题讨论】: