class属性是一个热门的XStream主题:没有人想要它。
摆脱它的正确方法是编写一个自定义转换器(其他提议的调整仅在编组时工作,而不是在解组时)。一个好的工作示例是here。
不幸的是我需要一个以不同方式工作的转换器:我想使用class属性的值作为实际包含该属性的元素的名称。例如,而不是
<codecData class="videoCodec">
...
</codecData>
和
<codecData class="audioCodec">
...
</codecData>
我想要
<videoCodec>
...
</videoCodec>
和
<audioCodec>
...
</audioCodec>
这样做的正确方法是什么?我写这种转换器的尝试失败了。
假设我有
public class MediumData {
public CodecData codecData;
public String otherInfo;
}
public abstract class CodecData {
public String name;
}
public class VideoCodec extends CodecData {
public String videoInfo;
}
public class AudioCodec extends CodecData {
public String audioInfo;
}
谢谢。