当值不为null时,java赋值属性

时间:2013-01-15 08:37:13

标签: java properties null

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

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

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

3 个答案:

答案 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);
       }
   }