String.valueOf return “Null”

최대 1 분 소요

Null인데요 Null이 아닙니다(?)

문제:

값이 Null임에도, 자꾸만 null check 조건문을 뚫고(?) 들어와 로그를 출력하는 현상이 발생.
Map안에있는 키값(double형인..)을 꺼내, null Check을 위한 조건문을 작성하였으나,
값이 Null임에도, 자꾸만 로그가 찍히는 현상이 발생

String lat = String.valueOf(row.get("LAT"));
        String lng = String.valueOf(row.get("LNG"));
        if (lat != null && lng != null) {
        logger.debug("lat:[{}] lng:[{}]",lat,lng);
}
---------
DEBUG : lat : [Null] lng : [Null]

맞는데 왜.. 틀리지.. ∞…

사실확인을 위해 String.valueOf 메소드 내부를 확인..

public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}

해결:

인자로받은 객체가 Null일경우, String “null”을 반환함
내가 봤던 null은 문자열 “null”이였던것….