以下のように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; } }
参考: