JAVA

자바의 열거형(enum)

열거형이란

서로 연관된 상수들의 집합으로

- 클래스처럼 보이게 하는 상수

- 서로 관련있는 상수들끼리 모아 상수들을 정의하는것

자바의 열거형은 갖는 값 뿐만 아니라 타입까지 관리 하여 논리적인 오류를 줄임

값이 같아도 열거형 타입이 다르면 false

(Enum 변수를 비교 할 때는 “==”를 사용합니다.)

enum변수에 미리 정의된 상수를 제외한 다른 값을 할당할수 없음

static과 fianl이 내장되어 있어서 한번 정의 된 값을 바꿀수없으며 int 형의 변수처럼 switch문에서 사용가능

Enum 클래스의 메소드

Class<E> getDeclaringClass() 열거형의 Class 객체를 반환한다.

String name() 열거형 상수의 이름을 문자열로 반환한다.

int ordinal() 열거형 상수가 정의된 순서를 반환한다

T valueOf(Class<T> enumType, String Name) 지정된 열거형에서 name과 일치하는 열거형 상수를 반환한다.

열거형을 통한 에러 코드 관리

enum클래스에서 에러코드와 해당 에러코드에 맞는 메세지를 등록해놓고 사용할수 있는데

열거형은 앞선 포스팅에서 상수의 잡합이기 때문에 로직에서 변경이나 추가가 불가능하며

enum클래스를 이용하면 해당 클래스로 에러코드를 전부 관리 할수 있게 된다.

우선 enum 클래스를 만들고

enum 클래스에 열거형과 code, msg를 선언한 뒤 생성자를 만듬

code와 msg에 대한 각각의 getter를 만듬(값을 get하기 위해)

enum클래스의 값들을 values() 메서드를 통해서 가져온 뒤

전부 보여주는 것과

아래는 에러코드가 000일경우에만 msg를 보여주는 방식으로 되어 있다.

향후 비즈니스로직 어딘가에서 에러코드를 반환했을때 enum 클래스에 정의 해둔것을 통해서 클라이언트에게 간편하게 제공할수 있다는 장점이 있다.