JAVA/Java

Enum의 String 포함 여부를 확인하는 방법

dodop 2022. 3. 4. 22:44

 

 

 

프로젝트 진행중에 category(enum 객체)의 이름이 넘어와

이것이 올바른 category인지 (enum의 이름에 속하는지) 확인이 필요한 상황이 발생했다. 

 

String과 일치하는 이름을 가진 Enum 타입이 존재 하는지를 확인하는 데에는 세가지 방법이 존재한다. 

 

 

 

 

 

 

① EnumUtils (Apache Commons Lang3 library)

https://mvnrepository.com/artifact/org.apache.commons/commons-lang3

첫번째 방법은 라이브러리를 사용하여 구현하는 방법이다. 위 사이트를 통해서 프로젝트 타입에 맞는 버전을 dependency에 추가해준다. 

 

// boolean타입으로 값 반환
EnumUtils.isValidEnum(Category.class, "TUMBLER")

위와 같이 isValidEnum을 이용하여 쉽게 객체 존재여부를 확인할 수 있다. 

 

 

 

 

 

 

 

② Stream을 이용하여 데이터를 찾기
Arrays.stream(Category.values()).anyMatch(value -> value.getName().equals("TUMBLER"));

두번째는 Category 값을 stream을 이용해서 돌면서 이름이 일치하는 실제 객체가 있는지를 확인하는 방법이다. 

 

 

 

 

나의 경우에는 라이브러리를 이용하여 존재여부를 확인하도록 구현했다!

 

( 참고한 사이트 )

https://www.javacodestuffs.com/2020/07/how-to-check-if-enum-contains-string.html

 

How to check if an enum contains String

how to check enum value in java,How to check if an enum contains String,check if enum is present

www.javacodestuffs.com

https://blog.hajs.me/216

 

[Java] 문자열이 Enum 에 포함되어 있는지 확인하는 방법

입력받은 문자열에 대한 검증이 필요했고, 그 문자열은 Enum 으로 관리하는 영역에 대한 문자열이었다. 고로.. 나는 입력받은 문자열이 Enum 의 값과 일치하는지 확인해야했다 :) #1. Stream 사용 Arrays

blog.hajs.me