以下のようにprivateコンストラクタを定義して、コンストラクタにEnumに持たせたいデータを渡す。
public enum Channel {
EMPLOYEE("employee"),
AGENT("agent"),
CUSTOMER("customer"),
;
private final String text;
private Channel(final String text) {
this.text = text;
}
/**
* チャネル種別の文字列表現
* @return
*/
public String getString() {
return this.text;
}
/**
* 文字列をEnumに変換する
* @param id
* @return
*/
public static Channel getChannel(final String id) {
Channel[] types = Channel.values();
for (Channel type : types) {
if (type.getString().equals(id)) {
return type;
}
}
return null;
}
}
参考: