JAVA

[JAVA] Enum name()

muggle-coder 2023. 9. 21. 01:56
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()을 사용해야합니다.