javaで、String型の属性を持ったEnumを扱う際、該当するStringがそこに含まれるかどうかを知りたいことがある。
Enumのクラス内に以下のように文字列を取得する関数を用意しておいてメンバーかどうかを判定する関数isMemberを作る。
public enum Status { QUIT("Q"), WORKING("W"); private final String text; Status(final String text) { this.text = text; } public String getString() { return this.text; } public static boolean isMember(String str) { for (Status status : Status.values()) { if (status.getString().equals(str)) { return true; } } return false; } }
また、文字列からEnumをゲットするにはこうすれば良い。
public static Status getTypeByString(String str) { for (Status status : Status.values()) { if (status.getString().equals(str)) { return status; } } return null; }