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