2017-04-05 22 views
0

Apache Commons Configurationの構成とプロパティの構成の種類にいくつかの概念的な問題があります。構成とプロパティの構成

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; 
    } 

私はBlazeGraphEmbeddedクラスのopenメソッドに渡すConfigurationオブジェクトを作成しようとしています。しかし、私のcreateConfigメソッドは、メソッドBlazeGraphEmbedded.open(Repository、Configuration)が受け入れないPropertiesConfigurationオブジェクトを返します。私はそれがランタイムエラーを生成し、コンフィギュレーションに私のPropertiesConfigurationをキャストすることができませんでした:

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

私は設定がPropertiesConfigurationによって実装されるインタフェースであることを理解し、私は、私が使用する方法の詳細にあいまいです私のプログラムを動かすための2つの異なるタイプ。

答えて

0

私のインポートステートメントに問題がありました。私は持っていた:

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

私は2つの異なるソースからインポートしていたので、なぜタイプが互換性がないのですか?

関連する問題