본문 바로가기
개발언어/JAVA

[JAVA] String.valueOf 와 toString의 사용 방법 및 차이 총 정리

by 코딩 시그널 2021. 9. 15.
반응형

형 변환이란?

형 변환에 대해 간단히 알아보면 단어의 뜻 그 자체로 풀어보면 형태(Type)를 변환시킨다는 뜻입니다. 즉 특정 변수 또는 상수의 타입을 다른 타입으로 변형시키는 것이라고 말할 수 있습니다. 이렇게 형 변환을 하는 이유는 프로그램을 작성하면 연산 및 비교를 수행해야 합니다. 이 경우 각 대상의 타입을 서로 동등하게 맞춰야 정확한 연산 및 비교 수행이 가능합니다. 형 변환의 종류는 여러 가지가 존재하는데 오늘은 그중에서 문자열 형 변환 방법에 대해 정리해 보겠습니다.

 

 

문자열 형 변환의 종류로는 대표적으로 String.valueOf() 속성과 Object.toString() 두 가지 메서드가 존재합니다. 두 메서드 모두 객체를 String 문자열 참조 자료형으로 형 변환하는 역할을 하고 있습니다. 그럼 이 두 메서드에 차이에 대해 알아보겠습니다.

 

String.valueOf()와 Object.toString()의 차이

두 메서드의 차이는 크게 두 가지가 존재합니다. 첫 번째는 변환 가능 자료형의 종류 및 개수입니다. 두 번째는 NULL 값의 처리 여부에 따른 차이입니다. 보통 문자열로 형 변환 시 toString()을 자주 사용하는데, null값을 문자열로 형 변환 시 NullPointerException를 발생시킵니다. 그에 반해 String.valueOf()를 사용하면 전달받은 파라미터가 null이 전달될 경우 문자열 "null"을 반환합니다.

 

다음 예제를 통해 null값을 문자열로 형 변환 시 두 메서드의 차이점을 확인해 보겠습니다.

String.valueOf() 

public static void main(String args[]) {
    Object obj = null; 
    System.out.println(String.valueOf(obj)); // String "null" 반환
}

Object.toString()

public static void main(String args[]) {
    Object obj = null; 
    System.out.println(obj.toString()); // NullPointerException 오류 발생 
}

 

위의 예제에서 확인했듯이 String.valueOf() 메서드를 사용하면 변환 값이 null 이면 그 값을 문자열("null")로 반환하는 반면에 toString() 메서드는 NullPointerException 오류를 발생시키는 것을 확인할 수 있습니다.

댓글