java
Spring-Boot java Enum 사용법
guney
2021. 1. 15. 12:14
반응형
웹 서비스 프로젝트 중 급히 Validation 체크 추가할 사항이 생겨서 만든 enum 클래스 이다.
최상위 enum 영역 안에, enum을 선언하여 5자리 코드 값을 넘길 시 알파벳 1자리 문자로 리턴하는 함수를 만들었다.
import java.util.Arrays;
public enum ProductThemeEnum {
M("10000", "M"),
F("10001", "F"),
C("10002", "C"),
A("10003", "A");
// 10000 남성
// 10001 여성
// 10002 KIDS
// 10003 공용
/* enum 클래스 영역안에서 사용할 함수, 변수 */
private String codeValue;
private String charValue;
private ProductThemeEnum(String codeValue, String charValue) {
this.codeValue = codeValue;
this.charValue = charValue;
}
public String getCodeValue() {
return codeValue;
}
public String getCharValue() {
return charValue;
}
public enum genderGbnCodeEnum{
GENDER_GBN_CODE(new ProductThemeEnum[] {ProductThemeEnum.M, ProductThemeEnum.F, ProductThemeEnum.C, ProductThemeEnum.A});
private ProductThemeEnum[] themeList;
private genderGbnCodeEnum(ProductThemeEnum[] themeList) {
this.themeList = themeList;
}
/*
* 서비스에서 호출 시 최종 값 리턴
* GENDER_GBN_CODE(성별구분코드)를 인자값으로 보낼 시 해당 코드에 맞는 알파벳 리턴, 매칭되는게 없다면 A로 리턴
*/
public static ProductThemeEnum findTheme(String code) {
return Arrays.stream(genderGbnCodeEnum.GENDER_GBN_CODE.themeList).filter(v -> v.codeValue.equals(code)).findAny().orElse(A);
}
}
}
*.java 에서 enum 호출 방법
ProductThemeEnum.A.getCharValue(); //A
ProductThemeEnum.A.getCodeValue(); //10003
genderGbnCodeEnum.findTheme("10000"); //M
genderGbnCodeEnum.findTheme(request param변수);
으로 내가 선언한 원하는 값을 가져올 수 있다.
리퀘스트 파람으로 넘어온 변수 값으로 원하는 알파벳 문자를 찾으려고 만든 것이다.
근데 왜 만들었는지 모르겠다.
만들고 안썼다. DB CASE문으로 컬럼하나 select해서 해결했다. ㅋㅋ