ポイント
- 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 メソッドについては、こちらが公式ページです。
以上です。
