본문 바로가기

cs(with 매일메일)

[260126월] 자바에서 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"문자열 반환