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 に答える