class 属性是一个热门的 XStream 主题:没有人想要它。
摆脱它的正确方法是编写一个自定义转换器(其他建议的调整仅在编组时起作用,而不是在解组时起作用)。一个很好的工作示例是here。
不幸的是,我需要一个以不同方式工作的转换器:我想使用类属性的值作为实际包含该属性的元素的名称。例如,而不是
<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;
}
谢谢你。