技術メモ

役に立てる技術的な何か、時々自分用の覚書。幅広く色々なことに興味があります。

【java】ある文字列がEnumメンバのString属性に含まれるかどうかを調べる

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;
	}