はじめに
Javaのenumは、メソッドや値を持つことが可能です。
それを利用して、コードの集合を作ることができますので、作ってみたいと思います。
よく見るソース
定数を使ってコード値を表しているものがあります。
public static final int SAFARI = 10;
public static final int CHROME = 20;
public static final int FIREFOX = 30;
public static final int OTHER = 99;
また、集まりを表すために、クラスに記載してみたり。
public class Browser {
public static final int SAFARI = 10;
public static final int CHROME = 20;
public static final int FIREFOX = 30;
public static final int OTHER = 99;
}
enumでの実装
記述は定数で記載するよりも増えてしまいますが、switch文を使用できる様になる。
また、interfaceを継承することができるので、列挙子毎に振る舞いを加えることもできます。
public enum BrowserKinds {
Safari(10), Chrome(20), FireFox(30), Other(99);
private final int code;
private BrowserKinds(int _code) {
this.code = _code;
}
public int getCode() {
return this.code;
}
public static BrowserKinds valueOf(final int _code) {
for (BrowserKinds kind : BrowserKinds.values()) {
if (kind.code == _code) {
return kind;
}
}
return BrowserKinds.Other;
}
}
DBFluteの区分値がenumを使ってますね。自動生成してくれるんでこの部分だけ使うのもアリだなぁと思います。