코더가 되고싶은 남자

Spring-Boot java Enum 사용법 본문

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해서 해결했다. ㅋㅋ