✅ 기본적으로 문자열(String) 형변환 3가지 방법
1. (String)
- 대상 변수가 null 이면 NullPointerException.
- Object 값이 String이 아니면 ClassCastException.
2. toString()
- 대상 변수가 null 이면 NullPointerException.
- Object 값이 String 변수가 아니더라도 출력.
3. String.value()
- casting 변수가 null 이면 문자열 "null"을 만든다.
// 문자형 변수 선언
String strVal = "test";
System.out.println("String.valueOf : " + String.valueOf(strVal));
System.out.println("(String) : " + (String) strVal );
System.out.println(".toString() : " + strVal.toString());
System.out.println("===================================");
// 문자형 공백 변수 선언
Object objVal = "";
System.out.println("String.valueOf : " + String.valueOf(objVal));
System.out.println("(String) : " + (String) objVal );
System.out.println(".toString() : " + objVal.toString());
System.out.println("===================================");
// Object null 변수 선언
Object strVal3 = null;
System.out.println("String.valueOf : " + String.valueOf(strVal3));
System.out.println("(String) : " + (String) strVal3 );
System.out.println(".toString() : " + strVal3.toString());
>> String.valueOf : test
>> (String) : test
>> .toString() : test
>> ===================================
>> String.valueOf :
>> (String) :
>> .toString() :
>> ===================================
>> String.valueOf : null
>> (String) : null
>> Exception in thread "main" java.lang.NullPointerException
at simsim.JavaCastingString.main(JavaCastingString.java:26)
✏️ 대상 변수가 null 일때 NullPointerException은 toString() 방식일때 발생 확인.
// 문자형 상수 변수 선언
Object objIntVal = 1;
System.out.println("String.valueOf : " + String.valueOf(objIntVal));
System.out.println(".toString() : " + objIntVal.toString());
System.out.println("(String) : " + (String) objIntVal );
>> String.valueOf : 1
>> Exception in thread "main" .toString() : 1
>> java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
at simsim.JavaCastingString.main(JavaCastingString.java:32)
✏️ 대상 변수가 String이 아닌 상수일때 ClassCastException 발생 확인.
🖥️ 정리
Null값을 형변환 하면 NPE가 발생하기 때문에, NPE를 방지할 수 있는 String.valueOf()를 사용하는 것이 좋다.
'Back-end > Java' 카테고리의 다른 글
| [Java - 기본] null (0) | 2024.04.04 |
|---|---|
| [Java - 기본] 변수와 초기화 (0) | 2024.04.04 |
| [Java - 기본] 참조형과 메서드 호출 - 활용 (0) | 2024.04.03 |
| [Java - 기본] 기본형 vs 참조형 (3) - 메서드 호출 (0) | 2024.04.03 |
| [Java - 기본] 기본형 vs 참조형 (2) (0) | 2024.04.03 |