如何使用XStream忽略类型?

时间:2008-11-30 12:46:16

标签: java serialization xstream

使用XStream,如何忽略已定义类型的序列化(例如,在序列化GUI时,我想忽略所有的swing类型)?

或者,如果我想忽略所有javax。*类型?

提前致谢,
布克哈德

1 个答案:

答案 0 :(得分:2)

您需要为要忽略的类型编写自定义转换器。

例如,如果要忽略JLabel:

public class MyJLabelConverter implements Converter {

    @Override
    public void marshal(Object value, HierarchicalStreamWriter writer, MarshallingContext context) {
    }

    @Override
    public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
        return null;
    }

    @Override
    public boolean canConvert(Class clazz) {
        return clazz.equals(JLabel.class);
    }
}

并将其注册为:

xstream.registerConverter(new MyJLabelConverter());