[Java] 문자열, 객체, 배열 Null Check

2022. 12. 12. 14:28 JAVA/Java

StringUtils

org.apache.commons.lang3.StringUtils

 

요약

  • Empty : Null, 공백문자("")
  • Blank  : Null, 공백문자(""), whitespace(" ")

Empty

  • StringUtils.isEmpty : Null 혹은 공백문자("") 이면 true 값 반환
  • StringUtils.isNotEmpty : Null 혹은 공백문자("") 이면 false 값 반환
  • StringUtils.isAnyEmpty : 문자들 중 Null 혹은 공백문자("") 있을 시 true 값 반환
  • StringUtils.isNoneEmpty : 문자들 중 Null 혹은 공백문자("") 있을 시 false 값 반환
  • StringUtils.isAllEmpty : 모든 문자열들이 Null 혹은 공백문자("") 이면 true 값 반환

example

StringUtils.isEmpty(null);			// true
StringUtils.isEmpty("");			// true

StringUtils.isNotEmpty(null);			// false
StringUtils.isNotEmpty("");			// false


StringUtils.isAnyEmpty(null);			// true
StringUtils.isAnyEmpty(null, "red");		// true
StringUtils.isAnyEmpty(new String[]{""});	// true

StringUtils.isNoneEmpty(null);			// false
StringUtils.isNoneEmpty("", "red");		// false


StringUtils.isAllEmpty("red");			// false
StringUtils.isAllEmpty("", null);		// true
StringUtils.isAllEmpty("", null, "red");	// false

Blank

 

  • StringUtils.isBlank : Null 혹은 공백문자("") 혹은 whitespace(" ") 이면 true 값 반환
  • StringUtils.isNotBlank : Null 혹은 공백문자("") 혹은 whitespace(" ") 이면 false 값 반환
  • StringUtils.isAnyBlank : 문자들 중 Null 혹은 공백문자("")  혹은 whitespace(" ")있을 시 true 값 반환
  • StringUtils.isNoneBlank : 문자들 중 Null 혹은 공백문자("") 혹은 whitespace(" ") 있을 시 false 값 반환

 

 

ObjectUtils

org.apache.commons.lang.ObjectUtils

BooleanUtils, CharUtils, ClassUtils, CharSetUtils, LocaleUtils 클래스들을 포괄하는 클래스이다.

 
 

기능은 적지만, 모든 Object에 사용가능하기 때문에 적절히 잘 사용하면 편리하다.

  • ObjectUtils.defaultIfNull : object가 Null일 경우 대체값 설정 가능
  • ObjectUtils.isEmpty : Null, 공백문자(""), 빈배열 체크
  • ObjectUtils.equals

example

ObjectUtils.isEmpty(null);		// true
ObjectUtils.isEmpty("");		// true
ObjectUtils.isEmpty(new String[]{});	// true
ObjectUtils.isEmpty(new Object());	// false
ObjectUtils.isEmpty("red");		// false
ObjectUtils.isEmpty(123);		// false

 

CollectionUtils

  • CollectionUtils.isEmpty : Null 혹인 빈 객체(size == 0)

List가 Null인 경우는 아직 인스턴스가 생성되지 않아 참조할 메모리 주소값이 없다는 것이다.

인스턴스가 생성이 된 상태에서 아무것도 들어있지 않을(size == 0) 경우도 Empty에 포함된다.

example

CollectionUtils.isEmpty(null);			// true
CollectionUtils.isEmpty(new ArrayList<>());	// true

CollectionUtils 대신 List에도 isEmpty가 존재하지만, List가 Null인 경우는 NullPointerException이 날 수 있기 때문에 CollectionUtils 를 사용하는 것이 더 안전하다.

 

출처 : https://haenny.tistory.com/406