상세 컨텐츠

본문 제목

[매일메일] 자바에서 Object 타입인 value를 String으로 타입 캐스팅하는 것과 String.valueOf()를 사용하는 것의 차이점은 무엇인가요?

본문

모두 String 타입으로 변환하는 것은 동일하지만, 동작과 예외 차이가 있음

(String) value로 타입 캐스팅 할 경우 value가 string이 아니라면 ClassCastException이 발생한다.

value가 null인 경우 그대로 null을 반환하여 이후 메서드를 호출 시, NullPointerException이 발생함.

타입 캐스팅은 타입 안정성이 부족하기 때문에 캐스팅하는 타입이 확실할 때만 사용해야 함.

 

String.valueof(value)의 경우 value가 String 타입이 아닌 경우 value.toString()을 호출하여 String으로 변환하며, value가 null인 경우 null 문자열을 반환함.

 

타입 캐스팅에서 발생하는 예외는 런타임 시점에 발생하기 때문에 String.valueOf()가 더 안전하고 예외를 방지할 수 있음.

타입 캐스팅 시, ClassCastException을 방지하는 방법은 무엇이 있을까

 

캐스팅 할 타입과 맞는지 먼저 확인 후 캐스팅 시, ClassCastException을 방지할 수 있음.

이때 instanceof를 사용 시, 안전하게 변환 가능함.

 

관련글 더보기