4

プロパティファイルからプロパティをマップとして取得することが、Apacheのcommons-configurationによって可能/サポートされているかのようにしたいと思います

これまで、次のコード スニペットを使用して間接的にこれを行うことができました

 Map<String, T> map = new LinkedHashMap<>();
 Configuration subset = config.subset(key);
 if (!subset.isEmpty()) {
     Iterator it = subset.getKeys();
     while (it.hasNext()) {
         String k = (String) it.next();
         //noinspection unchecked
         T v = (T) subset.getProperty(k);
         map.put(k, v);
     }
 }
 return map;

これよりもっと簡単な方法を知っている人はいますか?

どうもありがとうございました

4

2 に答える 2

6

私はあなたのやり方が好きですが、もしよろしければ: ConfigurationMap

Map<Object,Object> config = new ConfigurationMap(subset);
于 2014-01-15T15:09:14.767 に答える
0

すべてのプロパティを apache commons confuguration2 で Map として取得する

Parameters params = new Parameters();
File propertiesFile = new File("properties.properties");
FileBasedConfigurationBuilder<FileBasedConfiguration> builder =
                new FileBasedConfigurationBuilder<FileBasedConfiguration>(PropertiesConfiguration.class)
                        .configure(params.fileBased()
                        .setFile(propertiesFile)
                        .setEncoding("UTF-8"));

Configuration config = builder.getConfiguration();
Map<Object,Object> cfg = new ConfigurationMap(config);
cfg.entrySet();

チェックアウトするには:

for (Map.Entry entry : cfg.entrySet()) {
System.out.println(entry.getKey() + ", " + entry.getValue());
}
于 2018-01-23T10:48:00.677 に答える