상수를 보기쉽고 안전하게(type-safe) 사용 할 수 있다.
자바에서는 enum 객체를 지원하기 때문에 객체의 특성을 활용 할 수 있다.
enum Food{
HAMBURGER, PIZZA;
}
가장 먼저 선언한 값은 상수 0값을 가지고 1씩 증가한다.
열거체의 상수값을 문자열과 함께 사용 할 수 있다.
enum Food{
HAMBURGER("햄버거"),
PIZZA("피자");
private final String name;
Food(String name){
this.name= name;
}
public String getName(){
return this.name;
}
}
사용자가 정의하지 않아도 컴파일러가 자동으로 추가해준다.
values()
는 정의된 모든 값을 리스트 형식으로 반환한다.
for (Object food : Food.values()) {
System.out.println(food.toString());
}
결과
HAMBURGER
PIZZA
valueOf()
는 해당하는 값을 반환한다.Food hamburger = Food.valueOf("HAMBURGER");
Food pizza = Enum.valueOf(Food.class, "PIZZA");
System.out.println(hamburger);
System.out.println(pizza);
결과
HAMBURGER
PIZZA
자바 열거타입의 상위 클래스이다.
valueOf()
, values()
, compareTo()
, ordinal()
, name()
등 기본 메소드가 정의되어 있다.
ordinal()
: 상수의 순서를 반환한다.
name()
: 상수의 이름을 반환한다.
Set의 자료구조 특성을 띄며, enum 사용에 특화 된 자료구조이다.
static으로 정의되어 있어서 인스턴스 생성 없이 사용 가능하다.
EnumSet es = EnumSet.of(Food.HAMBURGER, Food.PIZZA);