Enumをうまく使いこなすには
色々試した結果、Enumを作る際に以下の2点の機能を追加すると便利になった。
・Enumの個々の要素にキーや必要な値を持たせ、取得できるようにする。
・キーを元にEnum自身のインスタンスを取得できるようにする。
以下サンプル
/**
* 信号を定義する列挙型
*
*/
public enum SignageType {
Blue("Blue"),
Yellow("Yellow"),
Red("Red");
private SignageType(String _key){
key = _key;
}
public static SignageType typeOf(String paramKey) {
SignageType[] list = values();
for (SignageType typeEnum : list) {
if (typeEnum.key == paramKey) {
return typeEnum;
}
}
return null;
}
public String key;
}
typeOfやキーをAbstractClassに持っていけたらもっといいんだけど
EnumはEnumクラスを継承してるから他のClassを継承できないー。
よって個々のEnumに書くしかなかった。
もうちょいスマートなやり方がある気もするなあ。
キーを複数設定して意味ある値を持たせてもいいけど持たせすぎは注意だなぁ。
このくらいがEnum的にはちょうどいい情報量なのかも。
もうちょっと色々試してみよう。