LoginSignup
5

More than 5 years have passed since last update.

enumでコードの集まりを作ってみる

Posted at

はじめに

Javaのenumは、メソッドや値を持つことが可能です。
それを利用して、コードの集合を作ることができますので、作ってみたいと思います。

よく見るソース

定数を使ってコード値を表しているものがあります。

public static final int SAFARI = 10;
public static final int CHROME = 20;
public static final int FIREFOX = 30;
public static final int OTHER = 99;

また、集まりを表すために、クラスに記載してみたり。

public class Browser {
    public static final int SAFARI = 10;
    public static final int CHROME = 20;
    public static final int FIREFOX = 30;
    public static final int OTHER = 99;
}

enumでの実装

記述は定数で記載するよりも増えてしまいますが、switch文を使用できる様になる。
また、interfaceを継承することができるので、列挙子毎に振る舞いを加えることもできます。

public enum BrowserKinds {
    Safari(10), Chrome(20), FireFox(30), Other(99);

    private final int code;

    private BrowserKinds(int _code) {
        this.code = _code;
    }

    public int getCode() {
        return this.code;
    }

    public static BrowserKinds valueOf(final int _code) {
        for (BrowserKinds kind : BrowserKinds.values()) {
            if (kind.code == _code) {
                return kind;
            }
        }

        return BrowserKinds.Other;
    }
}

DBFluteの区分値がenumを使ってますね。自動生成してくれるんでこの部分だけ使うのもアリだなぁと思います。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5