Enum

kim yeeun·2024년 2월 21일
0

여러 값들에 미리 이름을 정의하여 열거해 두고 사용하는 타입

자바에서 Enum 클래스 내의 정의된 엘리먼트들은 public static final 형태로 사용되어, 연관된 상수들의 집합으로 정의하기도

📌 사용이유

  1. 분야별로 종류를 정의하여 명확하게 사용하기 위해 + 관리 용이 (변경시 한 곳에서만 변경)
// 관리자 여부를 숫자로 체크

if (userType !== 0) {
    alert("관리자 권한이 없습니다");
}
// 회원 권한을 enum으로 정의
enum Auth {
    admin = 0, // 관리자
    user = 1,  // 회원
    guest = 2  // 게스트
}

// Auth.admin 으로 의미있게 값 체크 가능
if (userType !== Auth.admin) {
    alert("관리자 권한이 없습니다");
}
  1. 하드 코딩의 실수를 줄이기 위해 + 가독성
enum Languages {
    korean = 'ko', 
    english = 'en',
    japanese = 'jp',
    chiense = 'cn'
}

// setLanguage("ko-kr") 
setLanguage(Languages.korean)
  1. 타입 안정성 보장 - 특정 범위의 값만 사용 가능하게 하여 컴파일 오류나 런타임 예외를 줄인다.
@Getter
@RequiredArgsConstructor
public enum RoleType {

    USER("사용자"),
    ADMIN("관리자");

    private final String desc;

}

entity 내 다른 Type의 필드를 넣지 않고 RoleType.USER or RoleType.ADMIN 값만 넣을 수 있다.

@ Enumerated(EnumType.STRING)
    private RoleType role;
  1. 데이터들 간의 연관관계 표현
@Getter
@AllArgsConstructor
public enum TableStatus {

    Y("1", true),
    N("0", false);

    private String number;
    private boolean booleanValue;
    
}
```![](https://velog.velcdn.com/images/gda05024/post/6cf66b26-e549-4727-a271-0764c1ac7749/image.png)
profile
안녕하세요 프론트엔드 엔지니어 김예은입니다.

0개의 댓글