본문으로 바로가기

[Java] toString()과 String.valueOf()

category Language/Java 2020. 1. 18. 16:54

정수를 문자형으로 바꾸거나 어떤 자료형을 문자열로 변경하는 작업을 자주하게 되는데

toString과 valueOf에 대한 차이가 궁금해져 찾아본 후 정리합니다.


일단 두 메소드 모두 오브젝트의 값을 String으로 변경한다.


하지만 변경하고자 하는 오브젝트가 null 일 경우의 결과가 다르다.

  • toString -> NPE 오류를 발생
  • valueOf -> null이라는 특수문자로 처리

예제코드

Integer i = null;

i.toString();        // Null Pointer Exception
String.valueOf(i)    // No Exception

그래서 valueOf를 사용해 NPE을 피하는게 더 안전하다.

 

자바공식 API문서에도 잘 나와있다.

toString()메서드에 대해서: https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html#toString--

String.valueOf()에 대해서: https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#valueOf-int-

공식문서의 Object클래스에 대해서도 보면 좋을듯 하다.

'Language > Java' 카테고리의 다른 글

[Java] 리스트 컬렉션 (List Collection)  (0) 2020.01.23
[Java] 컬렉션 프레임웍(Collection Framework)  (0) 2020.01.22
[Java] 추상클래스(abstract class)  (0) 2020.01.18
[Java] 제어자  (0) 2020.01.18
[Java] 다형성(Polymorphism)  (0) 2020.01.18