ENUM이란?

잉으잉·2024년 11월 3일

자바공부

목록 보기
8/9

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클래스만 수정하면 되니 편리하다.

profile
컴퓨터 앞에 앉은 나는 개발자

0개의 댓글