【Java】enum を int で取得する 
2013/11/15 Fri [edit]
C言語では enum 型の実体は元から int 型だけど、Java の場合はクラスの定数文字列プロパティみたいな使い方が基本になる。でも意外と整数にしたいときも多いんだよね。配列のインデクスに対応させたい時とか。そんな時のコードサンプル。
public enum Direction {
UP(0),
LEFT(1),
DOWN(2),
RIGHT(3);
private final int value;
private Direction(int value) {
this.value = value;
}
public int toValue() {
return value;
}
}
int n = Direction.RIGHT.toValue();
もちろん、通常の enum としての使い方
public int method(Direction dir) {
switch (dir) {
case UP:
return Direction.UP.toValue();
case LEFT:
return Direction.LEFT.toValue();
case DOWN:
return Direction.DOWN.toValue();
case RIGHT:
return Direction.RIGHT.toValue();
}
return -1;
}
//メインでは
int n = method(Direction.DOWN);
何か不思議だけど、内部では Direction RIGHT = new Direction(3) みたいに変換されてるらしい(※あくまでイメージで実際のコードではない)。だから toValue() メソッドで値を取り出す感じになるんだね。
(関連記事)
【Java】文字列を enum 型に変換する
- 関連記事
トラックバック
トラックバックURL
→http://fantom1x.blog130.fc2.com/tb.php/88-8ef784a6
この記事にトラックバックする(FC2ブログユーザー)
| h o m e |