1

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;
}

谢谢你。

4

0 回答 0