1

我遇到了这个问题:当我调用 org.apache.commons.configuration.XMLConfiguration.save(String fileName) 时,它会写入两次未更改的属性。例如,我从这个 foo.xml 加载所有属性:

<config>
    <foo>value</foo>
    <bar>value2</bar>
</config>

全部正确加载。然后我通过调用 XMLConfiguration.setProperty("foo", "new_value") 并立即调用 XMLConfiguration.save(fileName) 来更改 foo 值,我得到以下信息:

<config>
<foo>new_value</foo>
<bar>value2</bar>
<bar>value2</bar>
</config>

如果关闭应用程序,重新启动并重复这些操作,柱的数量再次翻倍,但如果更改一次运行所有参数,则全部写入正确。

我试过这样写,但没有得到结果:

config.setProperty("bar", config.getString("bar"));

请帮忙……我怀疑,这很神奇……

UPD:问题解决了。方法很简单:不要调用 XMLConfiguration.load(),因为它已经在 XMLConfiguration 构造函数中调用了。

4

0 回答 0