[내배캠 Spring TIL] Java Enum 썸네일

[내배캠 Spring TIL] Java Enum

Java
Enum
2024년 7월 30일

Enum #

Java의 enum은 열거형 자료형으로, 특정한 이름을 가지는 상수의 집합을 정의할 때 사용된다. enum을 사용하면 코드의 가독성을 높이고, 상수를 보다 안전하게 다룰 수 있다.

public enum Day {
    SUNDAY,
    MONDAY,
    TUESDAY,
    WEDNESDAY,
    THURSDAY,
    FRIDAY,
    SATURDAY
}

public class EnumExample {
    public static void main(String[] args) {
        Day today = Day.MONDAY;
        System.out.println(today); // 출력: MONDAY
    }
}

메서드, 필드 #

Enum은 메서드와 필드를 가질 수도 있다.

public enum OperatorType {
    ADD('+', new AddOperator()),
    SUBTRACT('-', new SubtractOperator()),
    MULTIPLY('*', new MultiplyOperator()),
    DIVIDE('/', new DivideOperator()),
    MOD('%', new ModOperator()),
    POWER('^', new PowerOperator());

    private final char operatorChar;
    private final Operator operator;

    private OperatorType(char operatorChar, Operator operator) {
        this.operatorChar = operatorChar;
        this.operator = operator;
    }

    public <T extends Number> double operate(T num1, T num2) {
        return this.operator.operate(num1, num2);
    }

    static OperatorType getOperatorTypeByOperatorChar(char operatorChar) {
        Optional<OperatorType> optional = Arrays.stream(OperatorType.values()).filter(v -> v.operatorChar == operatorChar).findFirst();
        if (optional.isPresent())
            return optional.get();

        throw new IllegalArgumentException("잘못된 사칙연산 기호 입력입니다.");
    }
}

생성자는 private이며 매개변수를 받아 필드에 저장할 수 있다.


최근 게시물

김진근 • © 2025