[자바] 널 체크
NullPointerException(java.lang.NullPointerException) : 객체나 함수를 사용할 때 인자값이 null이면 해당 함수나 객체를 사용할 수 없어 오류가 발생하게 된다.
쉽게 얘기하면 함수를 사용할 때 인자값의 타입이 지정되어 있는데 이 인자값에 null 이 들어가면 발생하는 오류다.
기본적인 null 체크 예제
if(value != null){ //do something(value); }
널이면 do sonthing코드를 실행하지 않게 하여 오류를 피한다.
String 의 null 체크 예제
if(StringUtils.isNotBlank(value)){ //do somthing }
org.apache.commons.lang3.StringUtils 을 사용하여 빈값일때는 do something을 실행 하지 않게 한다.
String value = ""; // value에 값을 넣고... if(value.equals("")){ // do something }
null은 아니고 빈 스트링 문자열 일때는 equals 를 사용한다.
if("".equals(value.getStringName()){ //do something }
비교값을 왼쪽으로 두어 비켜가는 꼼수도 있다.
List형 null 체크 예제
객체 자체가 널인지 체크하고 사이즈도 체크하자.
if(listValue != null && listValue.size() > 0){ //do somethong }
커스텀 클래스를 만들어 사용하는 예제
public class CustomUtils { public static boolean isEmpty(Object obj) { if (obj == null) { return true; } if ((obj instanceof String) && (((String)obj).trim().length() == 0)) { return true; } if (obj instanceof Map) { return ((Map<?, ?>)s).isEmpty(); } if (obj instanceof List) { return ((List<?>)obj).isEmpty(); } if (obj instanceof Object[]) { return (((Object[])obj).length == 0); } return false; } }
오브젝트 객체에 대한 널체크를 한 후 빈값인지 아닌지 true, false로 반환한다.
사용법은 다음과 같다.
if(!CustomUtils.isEmpty(mapValue)){ //do sonething }
null 이면 true를 반환하기 때문에 조건문 앞에 ! 붙이는 걸 잊지 말아야 한다.
'JAVA' 카테고리의 다른 글
[jsp] include 사용방법 (0) | 2018.01.01 |
---|---|
[JAVA] 패스워드 정규식 (Regex) (1) | 2017.12.05 |
[JSP] jstl 과 el의 차이점 (0) | 2017.12.04 |
[JSTL]choose와 when, otherwise 사용법 (0) | 2017.11.23 |
[JSTL]fmt:formatNumber (0) | 2017.11.22 |