
Java是一门编译性的语言,常见脚本语言是解析性语言。
编译性语言的类的成员与属性在代码编译完成后就已经固定了,无法动态添加;
解释性语言是在运行时可以动态为对象添加属性和方法。
有时候我们需要在不改变类的属性字段的情况下,添加字段,Jackson提供了@JsonAppend注解来实现这个功能,使用方式如下
通过上面的例子可以看到,@JsonAppend提供了两种方式来动态的添加虚拟字段
1 attrs
此种方式需要在序列化时候手动的添加Attribute,如下
om.writerFor(CombineJacksonAnnotation.JsonPropertyPojo.class).withAttribute("age","10").withAttribute("height","12")
2 props
此种方式比较灵活,但是要实现一个VirtualBeanPropertyWriter类即可,如果真的有这种需求,推荐使用第二种方式来实现
添加属性用setAttribute()方法,可以传入两个参数,第一个是属性名称,第二个是要设置的属性值
var li = document.getElementsByTagName('li')[0]//设置 li 属性,如 data-falg,设置为true
li.setAttribute("data-falg", "true")
也可以获取属性用getAttribute(),传入一个参数,是想获取的属性名称,返回的是该属性的值
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)