知らないことを調べた結果を蓄積する

概要:Java の enum の使い方を学んだのでメモ
内容:
簡単な使い方
public class sample1{
    public enum emSAMPLE{
        SAMPLE1, // 値1
        SAMPLE2, // 値1
        SAMPLE3, // 値1
        SAMPLEX
    }
}
と定義して、
public class test1{
    sample1.emSAMPLE emsample1;

    test1(){
        emsample1 = sample1.emSAMPLE.SAMPLE1; 
        /*「import」で「sample1.emSAMPLE」をインポートすれば クラス名は省略可能 */
        emsample1 = emSAMPLE.SAMPLE1;
    }
    
    private void func1(){
        if( emsample1==emSAMPLE.SAMPLE1 ){
            /**/
        }else if( emsample1==emSAMPLE.SAMPLE2 ){
            /**/
        }
        switch(emsample1){
            case SAMPLE1: log.debug(""); break; // switch の case文では emSAMPLE は省略する。
            case SAMPLE2: log.debug(""); break;
            case SAMPLE3: log.debug(""); break;
        }
    }

    private void func2(){
        sample1.emSAMPLE emsample2 = emSAMPLE.SAMPLE2;
        func3(emsample2);
    }
    private void func3(emSAMPLE lsample){
        /* メソッドの引数にする例 */
    }
}

少しこった使い方
各項目に、ラベルと任意の値をセットする
public class sample2{
    public enum emSAMPLE{
        SAMPLE1("sample1 test", 1), // 値1
        SAMPLE2("sample2 test", 2), // 値2
        SAMPLE3("sample3 test", 3), // 値3
        SAMPLEX("sampleex test", 4)
        ;
    /* メンバ変数を定義 */
        private String label;
        private int value;
        /* コンストラクタ */
        emSAMPLE(String label, int value){
	    this.label = label;
	    this.value = value;
	}
        /* getter */
        public String getLabel(){
            return this.label;
        }
        public int getValue(){
            return this.value;
        }
	public static emSAMPLE getType(final int value){
	    for(emSAMPLE parts : emSAMPLE.values()){
		if( parts.getValue() == value){
			return parts;
		}
	    }
	    return null;
	}
	public static String getLabelOfGlobal(int value){
 	    String label = "";
	    for(emSAMPLE parts : emSAMPLE.values() ){
	        if( parts.getValue() == value){
		    label = parts.getLabel();
		    break;
		}
	    }
	    return label;
	}
    }
}
と定義
public class test2{
    sample2.emSAMPLE emsample2;
    test2(){
        emsample2 = emsample2.emSAMPLE.SAMPLE1; 
        /*「import」で「sample1.emSAMPLE」をインポートすれば クラス名は省略可能 */
        emsample2 = emSAMPLE.SAMPLE1;
    }
    private void func1(int typeval){
        emSAMPLE sample = emSAMPLE .getType(typeval); /* 引数とValueが一致する emSAMPLEを取得できる */
        log.debug("emSAMPLE.getLabelOfGlobal(typeval)");
    }
こんな感じで、ログ出したり、使い道はご自由に

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

管理人/副管理人のみ編集できます