개발 무지렁이

[Java] 한정된 값을 가지는 열거(enum) 타입 본문

Backend/자바

[Java] 한정된 값을 가지는 열거(enum) 타입

Gaejirang-e 2023. 8. 3. 02:21

열거(enum) 타입
🔖 한정된 값을 갖는 타입을 말한다.

※ 열거타입 이름으로 소스파일(.java)을 생성
※ 열거상수는 모두 대문자로 작성

  public enum LoginResult {
      LOGIN_SUCCESS, //열거상수 목록
      LOGIN_FAILED
  }

  //⭐ 열거타입 변수에 열거 상수 대입
  LoginResult result = LoginResult.LOGIN_SUCCESS;
𖠃 에러코드 관리
  @JsonFormat(shape = JsonFormat.Shape.OBJECT) # Json객체로 직렬화
  @Getter
  public enum ErrCode {
      //COMMON
      INVALID_CODE(400, "C001", "Invalid Code"),
      RESOUCRCE_NOT_FOUND(204, "C002", "Resource not found"),
      EXPIRED_CODE(400, "C003", "Expired Code"),

      private int status; //Http status
      private String code; //자체 정의 code
      private String message; //자체 정의 message
      private String detail; //e.getMessage()

      public ErrCode(int status, String code, String message) {
          this.status = status;
          this.code = codel
          this.message = message;
      }

      public String getKey() {
          return this.code;
      }

      public String getValue() {
          return this.message;
      }
  }
🦉 @JsonFormat(shape = JsonFormat.Shape.OBJECT)
: 해당 클래스의 인스턴스는 Json 객체직렬화
(객체의 필드값Json객체key-value 쌍으로 매핑되는 것을 말한다.)

📜 사용자정의 exception.java (with ErrCode)

  public class CustomException extends RuntimeException {
      private ErrCode errCode;

      public CustomException(ErrCode errCode) {
          super(errCode.getMessage());
          this.errCode = errCode;
      }

      public CustomException(String message, ErrCode errCode) {
          super(message);
          this.errCode = errCode;
      }
  }
Comments