-
[Java] Enum의 개념과 사용예제Java 2021. 3. 5. 22:56
Enum 이란?
열거체, 명명된 값을 이루는 집합이다.
Enum의 장점
IDE의 지원: 자동완성, 오타검증, 텍스트 리팩토링
이외에도 타입체크가 가능하고 상숫값이 재정의되어도 다시 컴파일 할 필요가 없다.
사용 예제
public enum Role { ROLE_ADMIN("관리자"), ROLE_MANAGER("매니저"), ROLE_MEMBER("일반사용자"); private String description; Role(String description) { this.description = description; } }
역할을 String 형식의 인수로 가질 수도 있겠지만 위와 같이 Role을 관리자, 매니저, 일반사용자로 제한할 수 있다.
위의 enum을 호출할때는
Role.ROLE_ADIMN Role.ROLE_MANAGER Role.ROLE_MEMBER
이렇게
{열거체이름}.{상수이름} 의 형식으로 쓴다.
다음은 Enum 클래스의 메서드에 관한 내용이다.
values()
enum Rainbow { RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, VIOLET } public class Enum01 { public static void main(String[] args) { Rainbow[] arr = Rainbow.values(); for (Rainbow rb : arr) { System.out.println(rb); } } }
values() 메서드를 통해 모든 상수를 배열로 받을 수 있다.
RED ORANGE YELLOW GREEN BLUE INDIGO VIOLET
ordinal()
enum Rainbow { RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, VIOLET } public class Enum03 { public static void main(String[] args) { int idx = Rainbow.YELLOW.ordinal(); System.out.println(idx); } }
2
ordinal()은 상수 자체가 아닌 열거형에서 정의된 순서를 반환한다.
아래는 대표적인 Enum 함수들이다.
static E values() 해당 열거체의 모든 상수를 저장한 배열을 생성하여 반환함. static E valueOf(String name) 전달된 문자열과 일치하는 해당 열거체의 상수를 반환함. protected void finalize() 해당 Enum 클래스가 final 메소드를 가질 수 없게 됨. String name() 해당 열거체 상수의 이름을 반환함. int ordinal() 해당 열거체 상수가 열거체 정의에서 정의된 순서(0부터 시작)를 반환함. 'Java' 카테고리의 다른 글
쓰레드 풀(Thread pool)을 이용해 이미지 크롤러 성능 높이기 (0) 2022.08.05 Publish/Subscribe 패턴 (0) 2022.06.18 JAVA8 Stream - 스트림 중개 연산 (0) 2021.03.05 JAVA8 Stream - 스트림 생성 (0) 2021.02.26