JavaのEnum
はオブジェクトの列挙になるので、メソッドを宣言したり、メンバー変数を宣言したりと振る舞いを持たせることができます。
👽 サンプルコード
public class Hoge { public static enum Type { HOGE("Hoge", 1) { @Override public void doSomething() {} }, FUGA("Fuga", 2) { @Override public void doSomething() {} };
private final String label; private final int value;
private Type(String label, int value) { this.label = label; this.value = value; }
public String getLabel() { return this.label; }
public int getValue() { return this.value; }
public static Type ValueOf(final int value) { Type[] types = Type.values(); for (Type type : types) { if (type.getValue() == value) { return type; } } return null; }
public abstract void doSomething(); } }
|
🍣 すべての要素を取得:values
Enumはstaticメソッドとしてvalues()
があり、定義したすべての要素を取得できます。
public class EnumValuesSample { private enum Planet { MERCURY, VENUS, EARTH, MARS, JUPITER, SATURN, URANUS, NEPTUNE; }
public static void main(String[] args) { for (Planet p : Planet.values()) { System.out.printf(p.toString() + "\n"); } } }
|
🚌 指定した名前をもつ要素を返す:valueOf
JavaのEnumはstaticメソッドとしてvalueOf(String name)
を持ち、指定した名前をもつEnumのオブジェクトを返します。
public class EnumValuesSample { private enum Planet { MERCURY, VENUS, EARTH, MARS, JUPITER, SATURN, URANUS, NEPTUNE; }
public static void main(String[] args) { for (Planet p : Planet.values()) { Planet p = Planet.valueOf("MARS") System.out.printf(p.toString()); } } }
|
🍮 参考リンク
🖥 VULTRおすすめ
「VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。
最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!