최대 1 분 소요

게시판 서비스를 구현하고 있는데,
RequestBody에 들어갈 게시판 타입을 enum으로 정의했다.
이 때, 해당 타입을 string 형태로 앞의 세 글자만 넣고 싶었다.

BoardType

public enum BoardType {
    HOT, FREE, PROTECTOR, JOB;

    @JsonCreator
    public static BoardType from(String str) {
        String res = "";
        switch (str.toUpperCase()) {
            case "HOT":
                res = "HOT";
                break;
            case "FRE":
                res = "FREE";
                break;
            case "PRO":
                res = "PROTECTOR";
                break;
            case "JOB":
                res = "JOB";
                break;
            default:
                throw new CustomException(NO_MATCHING_ENUM_TYPE);
        }
        return BoardType.valueOf(res.toUpperCase());
    }
}

이런 식으로 정의하면, 대소문자 구분하지 않고 앞 세 글자를 전달했을 때,
제대로 게시판 타입이 저장되는 것을 확인하였다.
enum에 정의되지 않은 키워드가 들어오면, custom으로 정의한 NO_MATCHING_ENUM_TYPE exception이 발생한다.

Ref.



💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기

태그:

카테고리:

업데이트: