我有一个非常复杂的对象树(基本上是尝试将对象序列化为XML)。对象可以包含相同类型的其他对象等。
无论如何,我在每个类上注释了别名,并且它在某种程度上运行良好。当嵌套级别超过3时,别名将停止工作。
例如,我有
private List<Object> values = new ArrayList<>();
这包含带注释别名的对象。但他们不再在这里工作了,我得到了通用的班级名称。
如果我注释这样的东西
@XStreamAlias(value = "value-date", impl = ValueDate.class)
private List<Object> values = new ArrayList<>();
它有效,但我不能多次使用注释。理想情况下,我会做以下事情:
@XStreamAlias(value = "value-text", impl = ValueText.class)
@XStreamAlias(value = "value-boolean", impl = ValueBoolean.class)
@XStreamAlias(value = "value-date", impl = ValueDate.class)
private List<Object> values = new ArrayList<>();
我希望像
这样的东西 <values>
<value-date>1999-08-31</value-date>
</values>
但是我得到了
<values>
<sql-date>1999-08-31</sql-date>
</values>
我的班级看起来像这样
@XStreamAlias("value-date")
@XStreamConverter(value = ToAttributedValueConverter.class, strings = { "date" })
public class ValueDate {
private Date date;
我希望我能说清楚: - )
我刚开始使用XStream,因为JAXB让我发疯; - )
感谢任何提示!
答案 0 :(得分:0)
好的,我发现错误:我试图将java.sql.Date直接放入我的List而不是将其包装到ValueDate中。
现在一切都按预期工作了。