我使用 java.lang.properties 读取配置文件并将配置值分配给类的字段。但我不想在配置文件中设置所有属性。这意味着,某些字段可以具有默认值并在配置文件中被省略。所以我的代码应该是这样的:
if(properties.getProperty("key")!=null){
value = properties.getProperty("key");
}
但是有很多字段要像这样编码。有没有办法避免这种无聊的工作?
我使用 java.lang.properties 读取配置文件并将配置值分配给类的字段。但我不想在配置文件中设置所有属性。这意味着,某些字段可以具有默认值并在配置文件中被省略。所以我的代码应该是这样的:
if(properties.getProperty("key")!=null){
value = properties.getProperty("key");
}
但是有很多字段要像这样编码。有没有办法避免这种无聊的工作?
请改用默认值参数:
value = properties.getProperty("key", <default value>);
如果在此属性列表中找不到键,它将使用默认值。
PS de bene esse,例如。value = properties.getProperty("key", "blabla, this is default value");
您可以创建一个属性字段数组,然后使用循环遍历它们并设置值。
String[] arr = {"Abc","Def"};
for(String s : arr){
if(properties.getProperty(s)!=null){
value = properties.getProperty(s);
}
}
但请注意,您还需要一些逻辑来设置不同的值。
您应该将您的属性建模为如下类:
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);
}
}