본문으로 바로가기

String.valueOf() 와 toString() 차이

category JAVA 2023. 11. 7. 10:05
반응형

 

 

공통

- 문자열 형 변환 종류로 대표적으로 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
반응형