読者です 読者をやめる 読者になる 読者になる

ITの隊長のブログ

ITの隊長のブログです。いや、まだ隊長と呼べるほどには至っていないけど、日々がんばります。CakePHPとPlayFrameworkを使って仕事しています。最近はAngular2をさわりはじめたお(^ω^ = ^ω^)

Javaのenumの使い方をメモ

Java

スポンサードリンク

f:id:aipacommander:20150222094557p:plain


もぉー、理解するの面倒臭かったぞ(^_-)-☆


(キモい)


さて、久々にJava触ると理解が薄かったところでまだ足踏みしてしまったので、今後のためにメモ



import java.util.EnumSet;

public enum Animal {

    /**
    * 列挙型の定数
    * ()を付けなくてもいいんだけど、
    * 内部にメソッドを記述すると必要
    */
    LION(0),
    MONKEY(1),
    MOUSE(2);

    private final int animalId;

    /**
     * 何に使うかよくわかっていないメソッド
    */
    private Animal(final int animalId) {
		this.animalId = animalId;
    }

    /**
    * 同じく
    */
    public int getAnimal() {
    	return animalId;
    }

    /**
     * int -> enum へ変更してくれるメソッド
     */
    public static Animal valueOf(final int value) {
    	for(Animal animal : EnumSet.allOf(Animal.class)) {
    		if(animal.ordinal() == value) {
    			return animal;
    		}
    	}
    	// マッチしない値であれば、問答無用でLIONを返す
    	return LION;

    	// Exceptionを発生させてもいいっぽい
    }
}


みての通り、あんまし理解できていませんorz


これまで列挙型って、ただ並べて使っていただけなのでこんなメソッド書いたことなかった。


サービスで使う際に変換とか必要になったので、列挙するだけじゃ足りなかったのさ⊂二二二( ^ω^)二⊃ブーン


まぁいいや。取り敢えずメモとして残しておくお!