[JAVA] 문자열로 형변환(Casting / toString / valueOf) 차이점

자바에서 다양한 데이터 타입을 문자열로 변환해야 하는 경우에는 (String) 캐스팅, toString() 메서드, 그리고 valueOf() 메서드가 사용될 수 있습니다.

 

(String) 캐스팅

서로 다른 데이터 타입 간의 캐스팅을 시도하면 컴파일 에러가 발생합니다.

null일 경우 null로 출력됩니다.

public class Example {
	public static void main(String[] args) {
	    Object example2 = 1;
	    Object example3 = null;
	    Object example4 = true;
	    System.out.println((String) example2); // 에러
	    System.out.println((String) example3); // null
	    System.out.println((String) example4); // 에러
	}
}

 

toString() 메서드

모든 클래스는 Object 클래스를 상속하므로, Object 클래스에서 상속받은 toString() 메서드를 재정의하여 해당 클래스의 객체를 문자열로 표현할 수 있습니다.

public class Example {
	public static void main(String[] args) {
	    Object example2 = 1;
	    Object example3 = null;
	    Object example4 = true;
	    System.out.println(example2.toString()); // 1
	    System.out.println(example3.toString()); // NullPointerException
	    System.out.println(example4.toString()); // true
	}
}

 

valueOf() 메서드

valueOf() 메서드는 모든 데이터 타입을 문자열로 변환할 수 있습니다.

null일 경우 null로 출력됩니다.

public class Example {
	public static void main(String[] args) {
	    Object example2 = 1;
	    Object example3 = null;
	    Object example4 = true;
	    System.out.println(String.valueOf(example2)); // 1
	    System.out.println(String.valueOf(example3)); // null
	    System.out.println(String.valueOf(example4)); // true
	}
}