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