staticなリスト変数の初期化方法(staticテーブルの作成)|Java
Javaでstatic final
などで定義したリストの中身を定義部分で設定する方法です。
リストオブジェクトがstaticなだけなので、中身の操作はメソッド内でも可能ですが(下記「メソッドで設定」を参照)、あらかじめシステムで決まっている定義値のテーブルなどを記述したい場合に。
スタティックイニシャライザを使った設定
static { }で囲まれた中に初期値を設定するコードを記述します。
スタティックイニシャライザといいます。
サンプル
class MyClass {
private static final SimpleArrayMap<String, Integer> ARRAY_MAPS = new SimpleArrayMap<>();
static {
ARRAY_MAPS.put("key-01", 0);
ARRAY_MAPS.put("key-02", 1);
}
}
メソッドで設定
以下のような書き方も可能ですが、これだと変数をstaticにする必要はないですね。
class MyClass {
private static final SimpleArrayMap<String, Integer> ARRAY_MAPS = new SimpleArrayMap<>();
private void sampleMethod() {
ARRAY_MAPS.put("key-03", 2);
}
}