Spring 코드로 Enum 검색하기

Enum

@Getter
public enum SolutionJoinStatusType {
	/**
	 * 취소
	 */
	CANCEL("0", "취소"),
	/**
	 * 발송준비
	 */
	READY("1", "발송준비"),
	/**
	 * 발송완료
	 */
	SEND_COMPLETE("2", "발송완료"),
	/**
	 * 검토중
	 */
	REVIEWING("3", "검토중"),
	/**
	 * 반려
	 */
	REJECTED("4", "반려"),
	/**
	 * 완료
	 */
	COMPLETE("5", "완료");

	private String code;
	private String codeName;

	SolutionJoinStatusType(String code, String codeName) {
		this.code = code;
		this.codeName = codeName;
	}

	public static SolutionJoinStatusType getByCode(String code) {
		for(SolutionJoinStatusType e : values()) {
			if(e.getCode().equals(code)) {
				return e;
			}
		}

		throw new IllegalArgumentException(String.format("No enum constant SolutionJoinStatusType %s", code));
	}
}

코드로 Enum 찾아서 사용하는 예

public String getStatusTypeName() {
    return this.statusType != null ?
        SolutionJoinStatusType.getByCode(this.statusType).getCodeName() : null;
}

댓글남기기