Java の Map で DB のマスタのような定数宣言をして使う方法♪

スポンサードリンク

ポイント

  • static final で宣言
  • Collections.unmodifiableMap を使うことによってマップの要素の変更を禁止する
  • 取り出す時は、クラス.変数.get(キー) の形で行う

Java ソースコード例

Map による定数定義

public class Constant {
    public static final Map PLANET_MASTER;

    static {
        HashMap<Integer, String> map = new HashMap<Integer, String>();
        map.put(1, "水星");
        map.put(2, "金星");
        map.put(3, "地球");
        map.put(4, "火星");
        map.put(5, "木星");
        map.put(6, "土星");
        map.put(7, "天王星");
        map.put(8, "海王星");
        PLANET_MASTER = Collections.unmodifiableMap(map);
    }
}

使用方法

Integer planetValue = (String) Constant.PLANET_MASTER.get(key);

おわりに

Android アプリを作っている時に、DB にテーブルを作ってとまでは面倒ですけれども、擬似的にパッとマスターテーブルのような仕組みを使用したいときに役に立つかしら、と思って考え、調べてみました。

最初は enum を使ったらどうかしら?と試行錯誤していたのですけれども、とりあえずとして、この方法を挙げました。

今回の目的達成のためには、もっとスマートなやり方があるような気もいたしますが、ひとつの答えとして残しておきますわ♪

なお、Map での定数宣言に関しては次のページのやり方をそのまま使用させていただきました。よくまとまっており、素晴らしいですの!ありがとう存じます!

また、Collections クラスの unmodifiableMap メソッドについては、こちらが公式ページです。

以上です。


スポンサードリンク

コメントを残す