728x90
Enum
enum은 여러 상수를 선언해야할 때, 편리하게 선언할 수 있는 방법
파라미터나 메서드 수행에 있어 너무 많은 경우의 수가 발생하는 것이 싫은 경우 케이스를 한정적으로 정의시 사용
- 메서드 수행에 필요한 Integer, String과 같은 경우의 수가 많은 파라미터에 대해
public static String createMessage(String message) {
return "당신에게 메세지를 보냅니다. : " + message;
}
위 코드에서 파라미터에 `String` 타입이면 모든지 다 들어갈 수 있다.
sendMessage(MessageType.LOVE);
sendMessage(MessageType.THANKS);
Enum을 활용해서 상황에 맞춰 파라미터들을 제약할 수 있다.
Enum을 사용한다면, 아래와 같이 값의 경우의 수를 줄일 수 있다.
enum MessageType {
LOVE("사랑합니다."),
THANKS("감사합니다.");
private final String message;
public String getMessage() {
return this.message;
}
MessageType(String message) {
this.message = message;
}
}
public static String createMessage(MessageType type) {
return "당신에게 메세지를 보냅니다. : " + type.getMessage();
}
앞의 코드는 단 하나의 메서드에서 사용되는 파라미터 값에 대한 제약이다.
이런 열거형 상수는 값이 불규칙적인 경우 위와 같이 사용된다. 열거형 상수의 이름 옆에 원한느 값을 괄호()와 함께 적어주면 된다.
- 지정된 값을 저장할 수 있는 인스턴스 변수
- 생성자 추가
- 주의할 점! 열거형 상수를 모두 정의한 다음에 다른 멤버들을 추가해야한다.
Enum으로 총 2개의 값에 대해 제약을 걸어보자
- (1) "사랑합니다" 라는 메세지를 보낼때는 (2) SMS메세지로 전송해야한다.
- (1) "감사합니다" 라는 메세지를 보낼때는 (2)이메일로 전송해야한다.
Enum을 lombok을 활용해서 깔끔하게 작성할 수 있다.
- 상수를 열거하는 것이므로 final을 사용
- 접근 제어자를 private으로 설정하고 getter로만 외부 접근가능하도록 한다
728x90
'ASAC 웹 풀스택 > Spring Boot' 카테고리의 다른 글
[Spring Boot] 기본 MVC 개발을 위한 Annotations 과 그 이해(1) - 컨트롤러 없이 정적 페이지 반환 (0) | 2024.10.06 |
---|---|
Java 기본 문법 및 JVM 구성(14) - SOLID (3) | 2024.09.30 |
Java 기본 문법 및 JVM 구성(12) - 다형성 (0) | 2024.09.29 |
Java 기본 문법 및 JVM 구성(11) - Generic, Interface, Abstract Class (0) | 2024.09.29 |
Java 기본 문법 및 JVM 구성(10) - final, static (0) | 2024.09.29 |