有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java XStream如何在XML中不存在带注释的字段时引发异常

我有这样的想法:

Java类

.....
@XStreamAlias("SOME_TAG")
    private String someAttribute;
.....

<ROOT>
    <ANOTHER_TAG>VALUE</ANOTHER_TAG>
</ROOT>

在我的xml中,我需要有这个“SOME_标记”,如果出于某种原因它丢失了,我需要抛出一个异常

我可以用XStream吗

问候


共 (2) 个答案

  1. # 1 楼答案

    纯粹使用XStream,我认为您有两种选择:

    1. XStream使用与JDK序列化相同的机制,因此您可以简单地在正在进行反序列化的类中实现Object readResolve()方法。此方法在对象初始化并由XStream设置所有字段后调用,因此可以使用此方法检查someAttribute字段是否为null-如果是,则可以引发异常。(XStream的示例可以在这里找到:http://x-stream.github.io/faq.html#Serialization_initialize_transient

    2. 另一种选择是为类编写一个自定义Converter,并在那里检查字段是否已填充

  2. # 2 楼答案

    我不是xstream的实验用户,但我会这样做:

    1. 创建一个dtd文件或xsd文件,您可以在其中指定所需的元素,然后可以根据dtd或xsd文件验证xml文件。 或者
    2. 在类内创建一个验证方法,以验证是否有任何字段为null或需要执行的任何其他验证