【问题标题】:How To Make Commons Configuration's setListDelimiter Work?如何使 Commons 配置 setList 分隔符工作?
【发布时间】:2012-02-24 00:44:39
【问题描述】:

我想在 Apache Commons 配置中使用备用列表分隔符。然而,尽管尝试了许多不同的方法来访问配置对象并设置其列表分隔符,但我永远无法让它实际使用默认逗号分隔符以外的任何东西。

我在 Mac OS X 上使用 Commons Configuration 1.8.0 版和 Java 1.6.0_29。

编辑:

我需要加载一个建立四层配置源集的 XML 配置定义文件:

  <configuration>
      <system/>
      <properties fileName="top.properties"/>
      <properties fileName="bop.properties"/>
      <properties fileName="fop.properties"/>
  </configuration>

...我提供给DefaultConfigurationBuilder 构造函数:

  val configBuilder = new DefaultConfigurationBuilder(configURL)

我已经在结果 DefaultConfigurationBuilder 上尝试了 getConfiguration 的两种重载。零参数版本被声明为返回Configuration,而不是AbstractConfiguration 的子类(尽管它可以转换为AbstractConfiguration)并且Configuration 甚至没有定义setListDelimiter

您能否解释一下,鉴于这些要求,我可以如何控制列表分隔符?

跟进:

致电AbstractConfiguration.setDefaultListDelimiter(listDelim) 为我解决了问题。

兰德尔·舒尔茨

【问题讨论】:

    标签: java apache-commons-config


    【解决方案1】:

    要更改单个配置对象的列表分隔符,请使用方法setListDelimiter()

    要更改所有配置的列表分隔符,请使用静态方法setDefaultListDelimiter()

    更改分隔符只会影响新的配置解析。所以要么refresh()你的配置,要么只在设置列表分隔符后加载你的配置文件。

    示例

    ListDelimiterDemo.java

    import org.apache.commons.configuration.AbstractFileConfiguration;
    import org.apache.commons.configuration.ConfigurationException;
    import org.apache.commons.configuration.PropertiesConfiguration;
    
    
    public class ListDelimiterDemo {
    
        public static void main(String[] args) throws ConfigurationException {
            AbstractFileConfiguration config = new PropertiesConfiguration();
            config.setListDelimiter('|');
            config.load("config.properties");
    
            for (Object listItem : config.getList("myprop")) {
                System.out.println(listItem);
            }
        }
    }
    

    config.properties:

    myprop=hello|world|!
    

    打印:

    hello
    world
    !
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-20
      • 1970-01-01
      • 1970-01-01
      • 2012-10-27
      • 2019-08-01
      • 1970-01-01
      • 2014-09-02
      相关资源
      最近更新 更多