1

我使用 java.lang.properties 读取配置文件并将配置值分配给类的字段。但我不想在配置文件中设置所有属性。这意味着,某些字段可以具有默认值并在配置文件中被省略。所以我的代码应该是这样的:

if(properties.getProperty("key")!=null){
    value = properties.getProperty("key");
}

但是有很多字段要像这样编码。有没有办法避免这种无聊的工作?

4

3 回答 3

4

请改用默认值参数:

value = properties.getProperty("key", <default value>);

如果在此属性列表中找不到键,它将使用默认值。

PS de bene esse,例如。value = properties.getProperty("key", "blabla, this is default value");

于 2013-01-15T08:39:42.067 回答
0

您可以创建一个属性字段数组,然后使用循环遍历它们并设置值。

String[] arr = {"Abc","Def"};
for(String s : arr){
  if(properties.getProperty(s)!=null){
    value = properties.getProperty(s);
  }
}

但请注意,您还需要一些逻辑来设置不同的值。

于 2013-01-15T08:41:51.147 回答
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);
       }
   }
于 2013-01-15T08:52:32.290 回答