Enum이란?
public enum OrderStatus {
PREPARING, SHIPPED, DELIVERING, DELIVERED
}
---
public static void main(String[] args) {
Arrays.stream(OrderStatus.values()).forEach(System.out::println);
}
Java에서 enum 타입의 values 메서드는 열거형(enum)의 모든 상수들을 배열 형태로 반환한다. 이는 열거형 상수들을 반복(iterate)하거나 집합적으로 처리하는 데 유용하며, 컴파일러에 의해 자동 생성되므로 별도의 구현 없이 사용할 수 있다.
public enum OrderStatus {
PREPARING(1),
SHIPPED(2),
DELIVERING(3),
DELIVERED(4),
;
private int code;
OrderStatus(int code) {
this.code = code;
}
public int getCode() {
return code;
}
}
enum은 클래스처럼 생성자, 메소드, 필드를 가질 수 있다.
단순한 상수 상태 => 더 복잡한 데이터 구조로 사용할 수 있게 한다.
enum 상수는 싱글톤 패턴으로 같은 타입의 동일한 열거 상수는 같은 객체를 참조하기 때문에, == 연산자를 통해 비교를 할 수 있다.


equals 연산자를 사용 시 NPE를 유발하기 때문에 enum은 == 연산자를 사용해야한다.

