728x90
enum은 열거형 상수 클래스라고 간단하게 생각하면됩니다.
public enum PaymentType {
CARD ,
CASH
}
결제방식에 대하여 분기처리시, enum을 사용하여 분기처리중 헷갈렸던 부분을 다시정리했습니다.
public static PaymentProcessor createPaymentProcessor(String paymentType) {
//1. 아래 분기처리는 실행이 되지않습니다.
if (PaymentType.CARD.equals(paymentType)) {
return new CardPayment(paymentType);
//2. 아래 분기처리는 정상적으로 작동됩니다.
} else if (PaymentType.CASH.name().equals(paymentType)) {
return new CashPayment(paymentType);
}
}
PaymentType과 String paymentType의 타입이 서로 다르기 때문입니다. PaymentType은 열거형(enum) 타입!!
String 과 비교하려면 .name()을 사용해야합니다.