FC2ブログ
ヽ|∵|ゝ(Fantom) の 開発blog? ホーム » Java »【Java】enum を int で取得する

【Java】enum を int で取得する  


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();

のように使えば良い(この例の場合、n = 3 になる)。
もちろん、通常の 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 型に変換する


関連記事
スポンサーサイト



category: Java

thread: プログラミング

janre: コンピュータ

tb: 0   cm: --


トラックバック

トラックバックURL
→http://fantom1x.blog130.fc2.com/tb.php/88-8ef784a6
この記事にトラックバックする(FC2ブログユーザー)

プロフィール

Social

検索フォーム

全記事一覧

カテゴリ

ユーザータグ

最新記事

リンク

PR