Enum 활용법
Enum(열거형)
서로 관련된 상수를 편리하게 선언하기 위한 것으로 여러 상수를 정의할때 사용하면 유용하다. 열거형은 갖는 값뿐만 아니라 타입도 관리하기 때문에 보다 논리적인 오류를 줄일 수 있다.
Enum의 특징
-
Enum은 static final이다
-
상속 불가능
-
그룹핑이 가능(Enum의 Enum으로 조합 가능)
-
Object를 계상받아 Object에서 제공하는 메소드를 활용할 수 있다. 또는 디폴트 메소드를 사용할 수 있다.
-
serializable, comparable이 가능하다.
-
메소드를 사용하여 기능 확장이 무궁무진하다(상수 + 관련 데이터의 연계 및 연산을 사용할 수 있다.).
-
비교 연산은 Int 상수와 성능이 비슷하다.
위와 같은 이유로 인해 코드 가독성이 좋으며, 형 안전성이 좋고, 기능이 강력하다.
Enum 활용
가게 마다의 익일 배송, 당일 배송을 기준으로 수령 가능일 조회 api를 구현해야하는데 배송 타입이 칼럼값으로 들어가서 열거형을 활용해 보았다.
public enum Type {
FAST(0, "fast"), REGULAR(1, "regular");
private final String delivery_type;
private final int value;
Type(int value, String type) {
this.delivery_type = type;
this.value = value;
}
public String getDelivery_type() {
return this.delivery_type;
}
// 배송 타입 기준으로 수령가능한 가장 이른 날짜를 반환
public LocalDate getDeliveryDate(boolean beforeClosing, LocalDateTime now) {
int plusDay1 = beforeClosing ? 0 : 1;
...
LocalDate startDay = now.toLocalDate();
// 현재 요청 당일이 주말 혹은 공휴일 인지 확인
startDay = Holidays.weekendOrHoliday(startDay);
// 오늘 날짜기준으로 마감시간 전에 시켰으면 + 0, 마김시간 후에 시켰으면 + 1
startDay = LocalDate.from(startDay).plusDays(plusDay1);
...
return startDay;
}
}
주문 날짜를 기준으로 익일 배송이면 +1 당일배송이면 +0을 한다.
참고 자료:
https://ehdvudee.tistory.com/33
자바의 정석 2편
Author And Source
이 문제에 관하여(Enum 활용법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@davidko/Enum-활용법저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)