我想将一些类存储到 xml:
XStream xstream = new XStream(new DomDriver());
List<String> modules = new ArrayList<String>();
modules.add("mod1");
modules.add("mod2");
ModulesConfig modulesConfig = new ModulesConfig(modules);
xstream.processAnnotations(ModulesConfig.class);
log.info(xstream.toXML(modulesConfig));
类模块配置:
@XStreamAlias("modules-config")
public class ModulesConfig {
@XStreamAlias("moduleName")
private List<String> moduleNames;
public ModulesConfig(List<String> moduleNames) {
this.moduleNames = moduleNames;
}
public List<String> getModuleNames() {
return moduleNames;
}
public void setModuleNames(List<String> moduleNames) {
this.moduleNames = moduleNames;
}
}
结果:
<modules-config>
<moduleName>
<string>mod1</string>
<string>mod2</string>
</moduleName>
</modules-config>
但我希望元素被命名为“moduleName”。如何配置 xstream 或者我必须向类添加哪些注释?我想要这样的结果:
<modules-config>
<moduleNames>
<moduleName>mod1</moduleName>
<moduleName>mod2</moduleName>
</moduleNames>
</modules-config>
最佳答案
这不会有您要求的确切结果,但看起来更清晰:
@XStreamImplicit(itemFieldName="moduleName")
private List<String> moduleNames;
产生的结果将是:
<modules-config>
<moduleName>mod1</moduleName>
<moduleName>mod2</moduleName>
</modules-config>
关于java - 使用定义名称的 XStream 存储 List<String>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8882883/