객체의 Null 체크와 empty 여부를 동시에 체크하기 위해 어떻게 해야할까요?
지난번에는 String의 white space와 null 체크할 때 사용하는 StringUtils에 대해서 알아보았는데요~
만약 List 의 empty 여부를 확인하고 싶다면 어떻게 해야하는지 알아보도록 하겠습니다~
ColletionUtils
문자열의 다양한 메소드를 사용하기위해 StringUtils 패키지를 사용했다면
객체에 대한 메소드를 사용하기위해서 CollectionUtils 패키지를 사용합니다.
CollectionUtils는 Apache Commons에서 제공하는 클래스로 List의 길이와 null 체크 할 때 주로 사용됩니다.
CollectionUtils.isEmpty()
List<String> testList = new ArrayList();
CollectionUtils.isEmpty(null); // true
CollectionUtils.isEmpty(testList); // true
CollectionUtils.isNotEmpty(testList); // false
- 장점
Null 체크와 Empty 체크를 동시에합니다.
CollectionUtils.isEmpty()를 사용하면 NPE(Null Point Exeption)을 동시에 방지할 수 있습니다.
isEmpty()가 더욱 직관적인 코드입니다.
isEmpty()는 시간 복잡도가 O(1)이지만, List.size()는 시간복잡도가 O(N)입니다.
사용 예시
기존에 List의 길이와 null을 체크하기위해서 어떻게하셨나요?
좋지 않은 코드 예)
혹시 null 이 아니고 비어있지 않은 경우를 체크하기 위해 아래와 같이 코드를 작성했나요?
if (TestList != null && TestList.size() > 0) { ... }
또는 List가 비어있는지 확인하기 위해 아래처럼 코드를 작성했나요?
if (!TestList.isEmpty()) { ... }
위 코드는 자주 사용할 수 있는 방법인데요 좋지 않은 방식으로 작성된 코드 예시입니다.
좋은 코드 예)
앞으로 null check와 리스트가 비어있는지 동시에 확인하기 위해서 CollectionUtils.isEmpty() 메소드를 사용합니다!
//AS-IS
if (TestList == null || TestList.isEmpty()) { ... }
//TO-BE
if (CollectionUtils.isEmpty(TestList)) { ... }
정리
앞으로 List, Map, Set 과 같은 자료구조는 null 체크와 empty 체크를 동시에 확인하는 ColletionUtils.isEmpty()를 사용합니다.
참고
'스터디 > JAVA' 카테고리의 다른 글
[JAVA] Fail-Fast 와 Fail-Safe (0) | 2023.08.17 |
---|---|
[JAVA] Collections.emptyList() 와 Lists.newArrayList() (0) | 2023.08.11 |
[JAVA] StringUtils.isBlank()와 StringUtils.isEmpty() 차이 (0) | 2023.02.11 |
[JAVA] 자바 예외 처리 (Exception) (0) | 2021.08.20 |
[JAVA] Primitive Type 과 Wrapper Class (0) | 2021.08.15 |
댓글