본문 바로가기

IT/기타

String.valueOf 와 (String)의 차이

반응형

String.valueOf와 (String)은 모두 객체를 String 타입으로 변환하는 데 사용될 수 있지만, 사용 방식과 내부 동작에서 차이가 있습니다. 각 방법의 차이를 설명하겠습니다:

1. String.valueOf(Object obj)

String.valueOf는 주어진 객체를 문자열로 변환하는 메서드입니다. 이 메서드는 다음과 같은 동작을 합니다:

  • 객체가 null인 경우: "null"을 반환합니다.
  • 객체가 null이 아닌 경우: 객체의 toString() 메서드를 호출하여 반환합니다.
Object obj = null;
System.out.println(String.valueOf(obj));  // 출력: "null"

Object obj2 = 123;
System.out.println(String.valueOf(obj2));  // 출력: "123"

 

2. (String) 캐스팅

(String)은 강제 형변환(casting) 연산자로, 객체를 String 타입으로 변환하려고 할 때 사용합니다. 그러나 이 방법은 null이거나, 실제로 String 객체가 아닌 다른 객체일 경우 예외를 발생시킬 수 있습니다. null인 경우 NullPointerException이 발생합니다.

Object obj = null;
System.out.println((String) obj);  // NullPointerException 발생

Object obj2 = "Hello";
System.out.println((String) obj2);  // 정상적으로 "Hello" 출력

 

주요 차이점

  1. null 처리:
    • String.valueOf는 null을 "null"로 처리합니다.
    • (String) 캐스팅은 null을 처리할 수 없으며, NullPointerException을 발생시킵니다.
  2. 예외 처리:
    • String.valueOf는 객체가 null일 때 예외를 발생시키지 않고 "null" 문자열을 반환합니다.
    • (String) 캐스팅은 객체가 String 타입이 아닐 경우 ClassCastException을 발생시킵니다.
  3. 사용 용도:
    • String.valueOf는 null을 안전하게 처리하고자 할 때 유용합니다.
    • (String) 캐스팅은 객체가 확실히 String 타입일 때만 사용해야 합니다.

따라서, String.valueOf는 null을 안전하게 처리할 수 있는 방법이고, (String) 캐스팅은 타입이 확실한 경우에만 사용하는 것이 좋습니다.

반응형

'IT > 기타' 카테고리의 다른 글

Java에서 String의 null 값 체크 방법  (2) 2025.02.14
Java MVC 패턴  (0) 2025.02.14
텐서플로우  (3) 2025.02.12
이클립스 내 코드를 SVN 버전으로 복구하는 방법  (1) 2025.02.11
HPE 이즈메랄 컨테이너 플랫폼  (0) 2025.02.10