-
Enum의 String 포함 여부를 확인하는 방법JAVA/Java 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
'JAVA > Java' 카테고리의 다른 글
JVM 구조와 자바의 실행방식 (0) 2022.08.05 Stream에서 null 값을 다뤄야 할 때 (0) 2022.03.04 == 와 === (0) 2022.02.25 java.util.AbstractList.add(Unknown Source) 오류 발생 시 (0) 2022.02.16 IllegalStateException VS IllegalArgumentException (0) 2022.02.13