我有这样的事情:
Java 类
.....
@XStreamAlias("SOME_TAG")
private String someAttribute;
.....
<ROOT>
<ANOTHER_TAG>VALUE</ANOTHER_TAG>
</ROOT>
在我的xml中我需要有这个“SOME_TAG”,如果由于某种原因它丢失了我需要抛出一个异常。
我可以用 XStream 做吗?
问候
我有这样的事情:
Java 类
.....
@XStreamAlias("SOME_TAG")
private String someAttribute;
.....
<ROOT>
<ANOTHER_TAG>VALUE</ANOTHER_TAG>
</ROOT>
在我的xml中我需要有这个“SOME_TAG”,如果由于某种原因它丢失了我需要抛出一个异常。
我可以用 XStream 做吗?
问候
我不是 xstream 的实验用户,但我会这样做:
纯粹使用 XStream 我认为你有两个选择:
XStream 使用与 JDK 序列化相同的机制,因此您可以简单地Object readResolve()
在您的类中实现一个正在反序列化的方法。此方法在对象已初始化并且所有字段都由 XStream 设置后调用,因此您可以使用此方法检查您的someAttribute
字段是否存在null
- 如果是,则可以抛出异常。(可以在此处找到 XStream 的示例:http: //x-stream.github.io/faq.html#Serialization_initialize_transient
另一种选择是为您的班级编写一个自定义转换器,并在那里检查该字段是否已填写。