Enum의 String 포함 여부를 확인하는 방법
프로젝트 진행중에 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
[Java] 문자열이 Enum 에 포함되어 있는지 확인하는 방법
입력받은 문자열에 대한 검증이 필요했고, 그 문자열은 Enum 으로 관리하는 영역에 대한 문자열이었다. 고로.. 나는 입력받은 문자열이 Enum 의 값과 일치하는지 확인해야했다 :) #1. Stream 사용 Arrays
blog.hajs.me