반응형
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" 출력
주요 차이점
- null 처리:
- String.valueOf는 null을 "null"로 처리합니다.
- (String) 캐스팅은 null을 처리할 수 없으며, NullPointerException을 발생시킵니다.
- 예외 처리:
- String.valueOf는 객체가 null일 때 예외를 발생시키지 않고 "null" 문자열을 반환합니다.
- (String) 캐스팅은 객체가 String 타입이 아닐 경우 ClassCastException을 발생시킵니다.
- 사용 용도:
- 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 |