我目前正在开发一个使用 XStream 从 XML 创建对象的系统。一个示例对象是
@XStreamAlias("TestClass")
public class TestClass{
@XStreamAlias("format")
private String format;
public String getFormat(){
return format;
}
public void setFormat(String format){
this.format = format;
}
}
这个类有一个字段,一个格式字段,构造它的 XML 如下所示:
<TestClass>
<format>foo</format>
</TestClass>
现在我想用特定的格式实例化这个类的不同实例。例如,我想要一个格式为 foo 的 TestClass 对象和一个格式为 bar 的对象。但不是生产
<TestClass>
<format>foo</format>
</TestClass>
<TestClass>
<format>bar</format>
</TestClass>
我想使用某种别名系统,这样就不需要上面的 XML,而是可以使用
<TestClassFoo />
<TestClassBar />
当然,名称不需要包含指定的格式。
我看到必须有一个自定义转换器,但我再次不想对每个别名进行硬编码,而是也从 XML 加载它们(是的,它变得复杂)。这样做的结果是为不同的 XML 对象创建快捷模板,这些模板可以动态配置。