Enumで文字コードを定義する

ファイル入出力のとき文字コードを指定するときEncodeCharsetというクラスが見えたと思う。

Java5から追加されたEnumを利用して使用しそうな文字コードを定義してある。

/**
 * Charset Enum
 */
public enum EncodeCharset{
    S_JIS("SHIFT-JIS"),
    UTF_8("UTF-8"),
    EUC_JP("EUC-JP"),
    ASCII("ASCII "),
    ;

    private String value;
    private EncodeCharset(String value){
        this.value = value;
    }
    public String getValue(){
        return this.value;
    }
}

この程度なら↓の書き方でも差は無いように思うが、新しいものを使いたい自分はenumを多用している(笑)

private static final String S_JIS = "SHIFT-JIS";


また、enumは1つの変数に複数の定義を行うこともできる。

privateコンストラクタの引数の順番で設定できる。

public enum OnOffFlag {

    ON    ( 1 , "する"),
    OFF    ( 0 , "しない"),
    ;

    private int num;
    private String val;

    private OnOffFlag(int num, String val){
        this.num = num;
        this.val = val;
    }

    public int getNum() {
        return num;
    }
    public String getVal() {
        return val;
    }
}