Enum은 Enumeration의 약자이다. 즉, '열거'라는 속성을 가지는 클래스라고 생각하면 되겠다.
그럼 열거형 클래스는 어디에 쓰일까? 상수를 정의할 때 많이 쓰인다.
다음 상황을 가정해보자.
try{
......;
}catch(IllegalArgunemtException e){
throw new Exception("범위 안의 값을 입력하세요")}
조건을 만족하지 않는 값에 대해 예외처리하는 프로세스이다. 이 경우에 메세지가 코드 내에 하드코딩되어있다. 메세지를 변경하고 싶다면 해당 코드로 가서 변경해줘야 한다는 단점이 있다. 명심하자. 하드코딩은 최대한 지양한다. 이럴 경우 사용되는 것이 Enum이다.
Enum의 장점은 다음과 같다.
예시를 한번 들어보자.
public enum ErrorMessage{
ErrorRange("범위 안의 값을 입력하세요"),
ErrorInteger("정수를 입력하세요"),
ErrorNoValue("값을 입력해야 합니다");
private final String message;
ErrorMessage(String Message){
this.Message = Message;
}
public String getMessage(){
return Message;
}
}
이렇게 enum을 선언해주고 위의 코드를 수정해보자.
try{
......;
}catch(IllegalArgunemtException e){
throw new Exception(ErrorMessage.ErrorRange.getMessage())}
이렇게 되면 메세지를 수정하고 싶을 때 enum클래스만 수정하면 되니 편리하다.