개발을 하다보면 똑같은 계절이라고 할지라도 어디에서는
봄, 여름, 가을, 겨울로 관리할 수 있고
다른 곳에서는 계절에 순서인 1,2,3,4 로 관리할 수 있다.
! 이러한 다양한 경우를 하나로 묶어서 관리할 수 있게 해주는 것이 바로 java enum이라고 할 수 있다.
- enum에 대한 자세한 설명은 우아한형제들 기술 블로그 Java Enum 활용기에서 확인할 수 있다.
여기에서는 enum에 대한 설명이 아닌 사용 법만 공유하겠다.
1. 먼저 enum에서
봄, 여름, 가을, 겨울은 String typeCode로 관리하고 싶고
1, 2, 3, 4 int형인 seasonOrder로 관리하고 싶을때 변수를 선언하고 생성자를 이용하면 해당 내용을 등록할 수 있다.
(아래 화면은 intelliJ에서 보기 쉽게 나타내준 화면이다)
2. values()를 이용하면 enum이 가진 항목의 값들을 배열로 받아준다.
따라서 getTypeCodeByName 에서 확인하듯
해당하는 name의 typeCode 전체 확인을 통해 가져올 수 있다.
3. valueOf("SUMMER")
valueOf은 단순히 String값을 반환하는 것이 아닌 인스턴스를 반환하기 때문에 main함수에서처럼
결과 값에 getTypeCode와 getSeasonOrder을 사용할 수 있다.
public enum SeasonEnum {
SPRING("봄", 1),
SUMMER("여름", 2),
FALL("가을", 3),
WINTER("겨울", 4);
private String typeCode;
private int seasonOrder;
SeasonEnum(String typeCode, int seasonOrder) {
this.typeCode = typeCode;
this.seasonOrder = seasonOrder;
}
public static String getTypeCodeByName(String name) {
for (SeasonEnum type : SeasonEnum.values()) {
if (type.name().equals(name)) {
return type.getTypeCode();
}
}
return "";
}
public static int getSeasonOrderByName(String name) {
for (SeasonEnum type : SeasonEnum.values()) {
if (type.name().equals(name)) {
return type.getSeasonOrder();
}
}
return 0;
}
public String getTypeCode() {
return typeCode;
}
public int getSeasonOrder() {
return seasonOrder;
}
}
> lombok에 getter을 이용하면 좀 더 코드를 깔끔하게 관리할 수 있다.
import java.util.Arrays;
public class main {
public static void main(String[] args) {
System.out.println(SeasonEnum.SPRING.getSeasonOrder());
//1
System.out.println(SeasonEnum.SUMMER.getTypeCode());
//여름
System.out.println(SeasonEnum.getTypeCodeByName("SPRING"));
//봄
System.out.println(Arrays.toString(SeasonEnum.values()));
//[SPRING, SUMMER, FALL, WINTER]
System.out.println(SeasonEnum.valueOf("SUMMER").getSeasonOrder());
//2
System.out.println(SeasonEnum.valueOf("SUMMER").getTypeCode());
//여름
}
}
'개발자 > v0' 카테고리의 다른 글
스트림 (stream) - java8 (0) | 2021.05.02 |
---|---|
window에서 ssh 서버 접근 쉽게하기 (0) | 2021.03.02 |
Markdown이란?, 마크다운 사용법, 마크다운 에디터 (0) | 2021.02.16 |
초보 개발자가 범하기 쉬운 실수 (2) | 2021.01.20 |
[ERROR] java.security.InvalidKeyException: Illegal key size (0) | 2021.01.12 |