[내배캠 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
이며 매개변수를 받아 필드에 저장할 수 있다.