XStream中有一个omitField方法,不能序列化特定字段。
我想要做的不是序列化具有特定类型的任何字段。
我当前的实现使用自定义转换器。
在元帅方法中,它什么都不做。没关系。
但是,在unmarshal方法中,它不能只返回null。否则,当解组包含对该对象的引用的对象时,将抛出无效的引用异常。
所以,我返回一个代理对象。这可以通过代理对象提供我想要的另一个功能,但我不能为某些类型创建这样的对象。我不是在这篇文章中问这个问题。
我想知道的是如何忽略无效的引用异常以成功反序列化对象?
答案 0 :(得分:0)
我发现我可以使用omitField和reflection更简单地实现omitType方法。
以下是我目前的实施情况。
public void omitType(Class<?>... definedIn) {
for (Class<?> clazz : definedIn) {
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
omitField(clazz, field.getName());
}
}
}