gpt4 book ai didi

java - 使用定义名称的 XStream 存储 List

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:52:09 26 4
gpt4 key购买 nike

我想将一些类存储到 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com