使用 Simple 简化 XML 序列化
2010-01-08 00:00:00 来源:WEB开发网
清单 13. Inventory2 类
public Inventory2(@ElementList(name="lures") List<AdvancedLure> lures,
@Attribute(name="warehouse") String warehouse) {
this.lures = lures;
this.warehouse = warehouse;
}
@ElementList(name="lures")
public List<AdvancedLure> getLures() {
return lures;
}
@Attribute(name="warehouse")
public String getWarehouse() {
return warehouse;
}
注意,在指定注解作为构造器参数的一部分时,也必须指定它对应的字段名称。对于第一个参数,字段名称是 lures。对于第二个参数,字段名称是 warehouse。
然后提供 accessor 方法上面所匹配的注解和字段名称。在 lures 的 getter 方法的正上方,可以看到适当的注解,完全匹配构造器中使用的注解。类似地,warehouse 的 getter 方法上面的注解也完全匹配该注解。
要执行该代码,只需对 清单 11 稍加修改,以包含 清单 14 中的代码。
清单 14. LureExample5 类
Inventory2 inventory = new Inventory2(lures,"MidWest");
使用 清单 14 中的代码,而不使用 清单 11 中使用的 setter 方法。其余都保持不变。
模板过滤器
Simple 的另一个伟大特性是,在反序列化 XML 文档时能够使用模板过滤器或默认值。
回到初始的 lure.xml,但是稍微修改一下,如 清单 15 所示。
清单 15. Lure2.xml 文档
<lure type="Trolling">
<company>${lure.company}</company>
<quantityInStock>23</quantityInStock>
<model>Marlin Buster</model>
</lure>
更多精彩
赞助商链接