본문 바로가기
JAVA

[JAVA(자바)] String.valueOf()와 toString() 차이

by 초이사 2022. 12. 21.

기본타입 문자열 변환에 대해 글로 정리하면서 참고하던 교재에 toString()은 나와있지 않았다.

나는 toString()을 사용할 때가 자주 있었기에 차이점을 글로 정리해두고자 작성하기로 했다!

 

 

String.valueOf()toString()은 자바 기본타입값을 문자열로 바꾸고 싶을 때 사용하는 메소드이다.

둘의 차이는 변환하고자 하는 값이 null값일 때, 발생한다.

 

사용 예시

Object obj = null;

String str = String.valueOf(obj); //출력시 null
String str2 = obj.toString(); //NPE(NullPointerException) 발생

변환하고자 하는 파라미터가 null일 때,

 

String.valueOf()는 null로 저장되어 String 타입으로 출력해주지만 따로  null을 처리할 메소드를 구현할 필요가 없다.

 

toString()은 NullPointerException 발생한다. 

간단하지 않는 프로그램에서 NullPointerException이 발생하면 원인을 찾기 곤란한 경우가 생기기 때문에

toString()을 사용하려면 null인 경우에 대해 따로 처리해주는 메소드를 구현할 필요가 있다.

 

String.valueOf()는 따로  null을 처리할 메소드를 구현할 필요가 없기 때문에 NPE를 방지하기 위해 String.valueOf()를 사용을 더 추천해 String.valueOf()만 작성되어져 있었던 것 같다.

댓글