我计划使用 XStream 和 Java 在对象和 XML 请求以及 XML 响应和对象之间进行转换,其中 XML 通过 HTTP/HTTPS 流动。在响应方面,我可以得到一个“成功”的响应,它似乎会映射到一个 Java 类,或者一个“失败”的响应,它似乎会映射到另一个 Java 类。
例如,对于“文件列表”请求,我可以得到肯定的响应,例如,
<?xml version="1.0" encoding="UTF-8"?>
<response>
<success>true</success>
<files>
<file>[...]</file>
<file>[...]</file>
<file>[...]</file>
</files>
</response>
或者我可能会得到否定的回应,例如,
<?xml version="1.0" encoding="UTF-8"?>
<response>
<success>false</success>
<error>
<errorCode>-502</errorCode>
<systemMessage>[...]AuthenticationException</systemMessage>
<userMessage>Not authenticated</userMessage>
</error>
</response>
为了处理这个问题,我应该在一个类中包含两种情况下的字段,还是应该以某种方式使用 XStream 来“有条件地”创建两个潜在类之一?
来自同一对象中的两个响应案例的字段的案例看起来像这样:
Class Response {
boolean success;
ArrayList<File> files;
ResponseError error;
[...]
}
Class File {
String name;
long size;
[...]
}
Class ResponseError {
int errorCode;
String systemMessage;
String userMessage;
[...]
}
我不知道“在成功或错误的情况下使用 XStream 并创建不同的对象”是什么样的。有可能以某种方式做到这一点吗?这是更好还是更糟的方式?
无论如何,任何关于如何使用 XStream 处理这种成功与失败响应案例的建议都将不胜感激。提前致谢!