簡體   English   中英

配置與屬性配置

[英]Configuration vs. PropertiesConfiguration

我在使用Apache Commons Configuration中的Configuration和PropertiesConfiguration類型時遇到一些概念上的困難。

PropertiesConfiguration config = createConfig();
BlazeGraphEmbedded graph = BlazeGraphEmbedded.open(repo, config);

createConfig()方法:

public static PropertiesConfiguration createConfig()
    {
        PropertiesConfiguration config = null;
        Parameters params = new Parameters();
        BasicConfigurationBuilder<PropertiesConfiguration> builder =
        new BasicConfigurationBuilder<PropertiesConfiguration>(PropertiesConfiguration.class)
                        .configure(params.basic()
                        .setListDelimiterHandler(new DefaultListDelimiterHandler(','))
                        .setThrowExceptionOnMissing(true));
        try {
            config = builder.getConfiguration();
            config.addProperty("VALUE_FACTORY", BVF_extendo4000.INSTANCE);
        } catch (ConfigurationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    System.out.println("Returning config.");
    return config;
    }

我正在嘗試創建一個Configuration對象,以傳遞給BlazeGraphEmbedded類中的open方法。 但是,我的createConfig方法返回一個PropertiesConfiguration對象,該方法BlazeGraphEmbedded.open(Repository,Configuration)將不接受。 我無法將PropertiesConfiguration轉換為Configuration,它產生了運行時錯誤:

Exception in thread "main" java.lang.ClassCastException: 
org.apache.commons.configuration2.PropertiesConfiguration cannot be cast to 
org.apache.commons.configuration.Configuration

我知道Configuration是由PropertiesConfiguration實現的接口,但是我對如何使用兩種不同類型來使程序運行的細節感到困惑。

問題出在我的進口聲明中。 我有:

import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration2.PropertiesConfiguration;

所以我是從兩個不同的來源導入的,因此為什么類型不兼容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM