动态给Java类添加字段
plan 类
public class Plan extends HashMap<String, Object>
{
private Long barcode; //条形码
public Long getBarcode()
{
return barcode;
}
public void setBarcode(Long barcode)
{
this.barcode = barcode;
}
Plan对象
Plan plan = new Plan();
plan.setBarcode(123456789L);
plan.put("size", "L");
使用jackson或gson序列化后barcode的值没有了
{"size":"L"}
原因:
jackson解析的时,会获取父类的Class类型来执行不同解析实现类,
而Plan继承了HashMap,他的解析实现类是MapSerializer!
而MapSerializer解析时,不会序列自身的属性!只会序列自身存储的Entry[](HashMap内的一个存储数据的数组)数组!
自然就没有序列到Plan类的barcode!
解决:
public class Plan extends HashMap<String, Object>
{
private Long barcode; //条形码
public Long getBarcode()
{
return barcode;
}
public void setBarcode(Long barcode)
{
this.put("barcode", (this.barcode = barcode));
}