반응형
공통
- 문자열 형 변환 종류로 대표적으로 String.valueOf() 및 toString() 메소드가 있으며
Object 값을 String 으로 변환해주는 역할을 함
차이
- 대표적인 차이로는 NULL 값의 처리 여부임
변환해야 할 값이 NULL 인 경우가 있다.
toString() 같은 경우 Null PointerException(NPE)을 발생 시키지만
String.valueOf() 같은 경우는 "NULL" 이라는 문자열로 출력을 함
정리
toString() -> 변환해야 할 값이 NULL 인 경우 NPE 예외 발생
String.valueOf() -> 변환해야 할 값이 NULL 인 경우 문자열 "NULL" 처리
toString() 사용 시 디버깅 하는 부분에서 어려움을 많이 생기고
Null PointerException(NPE) 방지를 위해 String.valueOf() 사용하는 것이 더 낫다고 생각함
Object obj = null;
String stringValueOf = String.valueOf(obj);
System.out.println(" stringValueOf : " + stringValueOf);
===> 출력 값 : stringValueOf : null
String toString = obj.toString();
System.out.println(" stringToString : " + toString);
===> 예외발생
Caused by: java.lang.NullPointerException: Cannot invoke "Object.toString()" because "obj" is null
반응형