본문 바로가기
👩‍💻TIL/JAVA

[자바/JAVA] toString()과 String.valueOf()의 차이점 비교

by devuna 2020. 5. 8.
728x90

[Java] toString()과 String.valueOf()의 차이 비교

Object 형태의 값을 String 형태로 변환할 때 많이 사용하는 것이 toString() 혹은 String.valueOf() 메소드이다.

 

두 메소드 모두 값을 String으로 변환한다는 점에서 비슷하지만, 변경하고자 하는 Object가 null인 경우에는 차이가 있다.

 

💡 Object가 null일때?

toString() 

- Null PointerException(NPE)을 발생

- 대상 값이 null이면 NPE를 발생 -> Object에 담긴 값이 String이 아니여도 출력

 

String.valueOf() 

- "null"이라는 문자열로 처리

- 파라미터가 null이면 문자열 "null"을 만들어서 반환한다-> 항상 String 형태로 출력 



이런 차이 때문에 valueOf은 "null".equals(string) 형태로 다시 한번 체크를 해야한다.

또한, null로 인해 발생된 에러는 시간이 지나고 디버깅하기 어렵다는 문제가 있다. 

그래서 NPE(Null PointerException)를 방지해야하는 경우에서는 String.valueOf()를 사용하는 것이 좋다.

 

 

 

728x90

댓글