なんでENUMを使いますか。
→コーディングが分かりやすくなる
コード例)
①ENUMの定義
import java.util.HashMap;
import java.util.Map;
public enum FLAG {
YES("1", "YES", "はい"),
NO("2", "NO", "いいえ");
public String v;
public String nE;
public String nJ;
private FLAG(String v, String nE, String nJ) {
this.v = v; this.nE = nE; this.nJ = nJ;
}
private static Map<String, FLAG> vMap = new HashMap<String, FLAG>();
static {
for(FLAG e : FLAG.values()) {
vMap.put(e.v, e);
}
}
public static FLAG vToE(String value) {
return vMap.get(value);
}
public String getV() { return this.v; }
public String getNE() { return this.nE; }
public String getNJ() { return this.nJ; }
}
②機能にはENUMの値を呼び方法
FLAG.YES.getV() // 結果:"1"
FLAG.NO.getV() // 結果:"2"
FLAG.YES.getNJ() // 結果:"はい"
FLAG.NO.getNJ() // 結果:"いいえ"
③ENUMの比較
比較の時、文字列の比較の代わりに、ENUMを比較したの方が分かりやすい
// ENUMに変換する
ENUM YES_FLAG = FLAG.vToE("1"); // "1" : はい
ENUM NO_FLAG = FLAG.vToE("2"); // "2" : いいえ
// ENUMの比較
if(YES_FLAG == FLAG.YES) {
// todo
}
if(NO_FLAG == FLAG.NO) {
// todo
}
// JSPの場合、値の比較
<c:if test="${FLAG.YES.getV() == '1'}">
<c:if>
// または
<c:if test="${FLAG.NO.getV() == '2'}">
<c:if>
以上