我已经开始阅读 Apache commons 文档,但它非常广泛,所以我希望有人可以回答一个简单的问题,所以我不需要阅读所有内容就可以开始使用它进行基本配置。我很快就失去了耐心——没有“快速入门章节”,在决定是否要使用该库之前,我不需要了解所有细节。
我想要(我认为是一个常见的用例)一个具有静态方法的类,该类提供属性的查找。
例如在类 Foo 我可以使用
Settings.config.getString("paramter");
在哪里
import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.DefaultConfigurationBuilder;
/**
* Settings configuration class
*/
public class Settings {
private static final DefaultConfigurationBuilder factory = new DefaultConfigurationBuilder("config.xml");
public static final Configuration config= factory.getConfiguration();
}
问题是工厂方法可以抛出异常!所以这段代码不能编译,一个类也不能抛出异常,所以我怀疑我需要做更多的编码。
我怀疑有一个简单的解决方案。但它肯定不能打电话
DefaultConfigurationBuilder factory = new DefaultConfigurationBuilder("config.xml");
Configuration config= factory.getConfiguration();
在我想阅读配置的每个班级中?
我试过了:
public class Settings {
public static final Configuration config;
static {
try {
DefaultConfigurationBuilder factory;
factory = new DefaultConfigurationBuilder("config.xml") ;
config = factory.getConfiguration();
}
catch (ConfigurationException e) {
// Deal with the exception
config=null;
System.exit(1);
}
}
}
但我得到编译错误:
error: variable config might already have been assigned
[javac] config=null;