개발공부/개발TIP
toString 사용 시 NPE(NullPointException)방지
람람람2
2020. 5. 25. 21:55
반응형
실수를 하여 기록해둔다.
Java Map 객체에서 값을 빼올 때
예)
HashMap<String, Object> apiResponse = new Map<>(); logger.debug(apiResponse.get("aaa").toString()); |
aaa라는 이름의 객체를 빼온다고 하자.
이때 값이 null이면 NullPointException 이 떨어진다. 이때는 값을 굳이 형변환을 할필요 없이 값 앞에다 알맞은 형을 명시해둔다. 이미 Object객체임으로 컴파일러에게 String이라고 아래와 같이 명시해주면 된다.
HashMap<String, Object> apiResponse = new Map<>(); logger.debug((String)apiResponse.get("aaa")); |
아니면 NPE 방지를 위해서 String.valueOf()를 쓰는것도 한 방법이다.
String.valueOf()은 파라미터가 null이면 null인 문자열을 반환시킨다.
String lowerCoatingVal1 = String.valueOf(destItemMap.get("LOWER_VAL")); String lowerCoatingVal2 = destItemMap.get("LOWER_VAL").toString();
lowerCoatingVal1 = "null" lowerCoatingVal2 = NullPointerException 발생
String.valueOf()의 null 체크 String lowerCoatingVal1 = String.valueOf(destItemMap.get("LOWER_VAL")); if("null".equals(lowerCoatingVal1)) { // To do Somting.... } |
출처 : https://swjeong.tistory.com/146,https://okky.kr/article/71363
반응형