여러 값들에 미리 이름을 정의하여 열거해 두고 사용하는 타입
자바에서 Enum 클래스 내의 정의된 엘리먼트들은 public static final 형태로 사용되어, 연관된 상수들의 집합으로 정의하기도
// 관리자 여부를 숫자로 체크
if (userType !== 0) {
alert("관리자 권한이 없습니다");
}
// 회원 권한을 enum으로 정의
enum Auth {
admin = 0, // 관리자
user = 1, // 회원
guest = 2 // 게스트
}
// Auth.admin 으로 의미있게 값 체크 가능
if (userType !== Auth.admin) {
alert("관리자 권한이 없습니다");
}
enum Languages {
korean = 'ko',
english = 'en',
japanese = 'jp',
chiense = 'cn'
}
// setLanguage("ko-kr")
setLanguage(Languages.korean)
@Getter
@RequiredArgsConstructor
public enum RoleType {
USER("사용자"),
ADMIN("관리자");
private final String desc;
}
entity 내 다른 Type의 필드를 넣지 않고 RoleType.USER or RoleType.ADMIN 값만 넣을 수 있다.
@ Enumerated(EnumType.STRING)
private RoleType role;
@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)