본문으로 건너뛰기

String 캐스팅 방법 차이

✔️ (String) value

value가 String 타입이 아닌 경우 ClassCastException이 발생하며, value가 null인 경우 그대로 null을 반환하여 이후 메서드를 호출할 때 NullPointerException이 발생합니다. 타입 캐스팅은 타입 안정성이 부족하기 때문에 캐스팅하는 타입이 확실할 때만 사용해야 합니다.

Object intValue = 10;
String str1 = (String) intValue; // ClassCastException

Object nullValue = null;
String str2 = (String) nullValue; // null
str2.concat("maeilmail"); // NullPointerException

✔️ String.valueOf(value)

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

Object intValue = 10;
String str1 = String.valueOf(intValue); // "10"

Object nullValue = null;
String str2 = String.valueOf(nullValue); // "null"
str2.concat("maeilmail"); // "nullmaeilmail"

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

Loading comments...