我使用java.lang.properties读取配置文件并将配置值分配给类的字段。但我不想在配置文件中设置所有属性。这意味着,某些字段可以具有默认值,并在配置文件中省略。 所以我的代码应该是这样的:
if(properties.getProperty("key")!=null){
value = properties.getProperty("key");
}
但是有很多字段需要像这样编码。有没有办法避免这种无聊的工作?
答案 0 :(得分:4)
改为使用默认值参数:
value = properties.getProperty("key", <default value>);
如果在此属性列表中找不到该键,则它将使用默认值。
P.S。 de bene esse,例如。 value = properties.getProperty("key", "blabla, this is default value");
答案 1 :(得分:0)
您可以创建一个属性字段数组,然后使用循环遍历它们并设置值。
String[] arr = {"Abc","Def"};
for(String s : arr){
if(properties.getProperty(s)!=null){
value = properties.getProperty(s);
}
}
但请注意,您还需要一些逻辑来设置不同的值。
答案 2 :(得分:0)
您应该将属性建模为如下类:
class Prop {
private String value;
private String key;
private String default;
...
public void load(Properties properties) {
if (properties.getProperty(key)!=null) {
value = properties.getProperty(key, default);
}
}
}
这样你可以声明一个Prop
数组并以这种方式初始化它:
for (Prop prop: props) {
prop.load(properties);
}
或者更好地创建一个这样的静态类初始化方法:
static public void loadProperties(Properties properties) {
for (Prop prop: props) {
prop.load(properties);
}
}